クラスの参照メンバーの出力がコンパイラによって異なる理由を教えてください。
class B
{
int& aRef;
public:
B(int c):aRef(c){}
void Print()
{
cout<<aRef<<endl;
}
};
void f(int s)
{
int& lcRef=s;
cout<<lcRef<<endl;
}
int main()
{
int x=100;
B s(x);
s.Print(); //ms c++ output : 3323244, gcc output :100
f(x); //ms c++ output : 100, gcc output:100
return 0;
}
関数の 2 番目の質問パラメーターはf(int s)
、クラス B の初期化のコンストラクターと同じロジックで動作しますか?