コピーコンストラクタについて、初心者からの質問です – プログラミング – Home

コピーコンストラクタについて、初心者か...
 
通知
すべてクリア

[解決済] コピーコンストラクタについて、初心者からの質問です


あとらす
 あとらす
(@あとらす)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

コピーコンストラクタ内で、仮引数に渡したクラスの
privateメンバにアクセスできる理由が今ひとつわかりません。
スコープが解決していれば、呼び出しもととは別のオブジェクトの
privateメンバにでもアクセスできるということで良いのでしょうか?


引用未解決
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

C++ のアクセス制限は、個々のオブジェクトに対してではなく、クラスに対してかかるものです。
他のオブジェクトであろうと、同じクラスであればアクセス制限はかかりません。

利点としては、型情報だけあれば評価が可能で、オブジェクトの識別情報を
持たなくていいことでしょうか。
# instanceof() のようなデータ/機能が不要。


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

private な名前は(それが this に関連付けされているか否かにかかわらず)
クラスのメンバ(関数)内であれば使うことができます。

規格書の表現を引用するなら
private: この種別のクラスメンバの名前は、それが宣言されているクラスの、
メンバ、随伴関数、随伴クラスだけが使うことができる。
(JIS X 3014:2003 11) 随伴とは friend の訳語

ということで、
>スコープが解決していれば、呼び出しもととは別のオブジェクトの
>privateメンバにでもアクセスできるということで良いのでしょうか?
そういうことです。


返信引用
あとらす
 あとらす
(@あとらす)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

Ban様 どうもありがとうございました。おかげで疑問が解消しました。


返信引用
あとらす
 あとらす
(@あとらす)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

tetrapod様 どうもありがとうございました。規格書引用もためになりました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました