https://stackoverflow.com/a/8523361/11862989从这个答案这个问题就出现了。我觉得那个答案有小问题,所以我在那里发表了评论,但没有得到他的回复(我指的是那个人(190K Reputation)的答案)所以我在这里问了一小部分。
1.
。H
struct A
{
private:
int &i;
public:
A(int);
};
.cpp
A::A(int k1): i(k1)
{
std::cout<<&k1<<" "<<k1<<"\n";
std::cout<<&i<<" "<<i<<"\n";
}
主文件
int main()
{
int x=99;
std::cout<<&x<<" "<<x<<"\n";
A a1(x);
}
输出
0x72fe0c 99
0x72fde8 99
0x72fde8 99
2.
。H
struct A
{
private:
int &i; // __change__
public:
A(int&);
};
.cpp
A::A(int &k1): i(k1) // __change__
{
std::cout<<&k1<<" "<<k1<<"\n";
std::cout<<&i<<" "<<i<<"\n";
}
主文件
int main()
{
int x=99;
std::cout<<&x<<" "<<x<<"\n";
A a1(x);
}
输出
0x72fe0c 99
0x72fe0c 99
0x72fe0c 99
在第二个代码中,因为我们x
通过 main 传递引用,它由k1
. 现在我们传递对k1
to的引用i
。表示 nowi
指的是k1
和k1
指的是x
。意味着间接i
指的x
是我是对的吗?
在第一个我认为这里变量的值x
是通过 main 传递的,它是由 variable 收集的k1
,然后引用 ofk1
被传递给 variable i
。所以在这种情况下,变量i
是指变量k1
,但变量k
不是指变量x
,对吗?
我在上面提到的那个人(190K Reputation)的答案他使用第一种方法来做到这一点,我认为他错了,__2nd__ 方法对于初始化类中对象的引用变量是正确的。我对吗 ?