「c++ で考える」という本で言及されている演習の 1 つを参照しています。以下のコード スニペットは、呼び出し h.play に対してエラーをスローします。メンバー i がプライベートであるため、私は理解しています。 call me.play. call h.play にコメントを付けると、コードは正常にコンパイルされます. call me.play でエラーが発生しないのはなぜですか?
class Buddy {};
template<class T> class My {
int i;
public:
void play(My<Buddy>& s) {
s.i = 3;
}
};
int main() {
My<int> h;
My<Buddy> me, bud;
h.play(bud);
me.play(bud);
}
ありがとうございました。
[編集]コンパイラが生成したコードを確認する方法はありますか
My<int> h and
My<Buddy> me
? (-E コンパイラ フラグに似たもの) ?