コピーまたは移動コンストラクターを定義すると、別のクラスのプライベート変数にアクセスできます。C ++はそれらfriend
を自動的に相互に作成しますか?
例えば:
my_str::my_str(my_str&& m)
{
size_ = m.size_; //accessing private variable another my_str class
buff_ = m.buff_; //accessing private variable another my_str class
m.buff_ = nullptr;
m.size_ = 0;
}
7
これはまったく同じクラスです。だからね友達が必要です。
—
M.スピラー
stackoverflow.com/questions/6921185/…を参照してください。つまり、C ++のアクセス制御では、オブジェクトインスタンス間ではなく、異なるタイプ間でのみ識別されます。
—
osuka_
「別のmy_strクラス」と書いた場合、それは正直な間違いです。これは別のmy_str インスタンスであり、他のコメントと回答はそれが何を伴うかを説明しています
—
JonathanZはMonicaCをサポートします