読み込みは public で、書き込みは protected / private の宣言がほしい。
って、むかしから書いているんだけど、一向にどの言語も実装してくれないのでもう一度書いてみるテスト。
class ABC { limit_private: int Number; //読み込みは public 書き込みは private で public: ABC() { this->Number = 123; } }; ABC * p = new ABC(); printf("%d", p->Number ); //OK int b = p->Number + 10 ; //OK p->Number = 10; //NG
ってゆー風にしたいんですよ。
利点:
getNumber() ってアクセッサをいちいち記述するのは面倒
p->getNumber() より、 p->Number って書くほうがかっこよさそう。
欠点:
何かある?
よくある話
・C#のプロパティでできるのでは?
できません。
C#のプロパティではこーゆーことするとコンパイルエラーになります。
うそだと思うならやってみてください。
もちろん、private int _Number ; public Number get(){ return this._Number; } ってやればできますが、
これって毎回 Number プロパティをかかないといけませんよね。
getNumber() ってアクセッサを毎回書くのがイヤだから提案しているのに、毎回アクセッサを書くなんて本末転倒もいいところです。
・それくらいめんどくさがらずに書くべき
それくらいめんどくさがらずに簡略化してくださいwww