如何将C ++中的2个变量与另一个变量绑定,以便当一个变量改变另一个变量时?
例如我创建的Int A和Int B彼此绑定,而当我使用某个函数更改A时,另一个将自动更改为A的新值。
我对C ++ .net第4版的版本感兴趣。
答案 0 :(得分:11)
我不知道.Net版的C ++,但您可以使用C ++中的引用来做您想做的事情:
int A = 0;
int& B = A;
...
A = 10; // B == 10
B = 100; // A == 100
答案 1 :(得分:5)
你不能用vanilla值来做,在某处需要间接。
你可以参考一个:
int a;
int& b = a;
a = 5;
assert(b == 5);
指向一个:
int a;
int* b = &a; // b points to a
a = 5;
assert(*b == 5);
或者创建一些实用程序来实际包装上面的内容。
答案 2 :(得分:2)
如何将C ++中的2个变量与另一个变量绑定,以便当一个变量改变另一个变量时?
您正在寻找一个名为 reference 的概念,它基于一个名为 pointer 的概念。实际的概念是你想要两个Thingies指向一个内存位置。
例如我创建的Int A和Int B彼此绑定,而当我使用某个函数更改A时,另一个将自动更改为A的新值。
你的意思是 B 将改为A的新值,我接受它。
int &B = A;
创建指向A所指位置的引用B.
另一种方法 - 不是初学者的最佳方法 - 是:
int *A = new int; //Get some heap memory for A to point to
int *B = A;
使用指针。
我对C ++ .net第4版的版本感兴趣。
严格来说,C ++是ISO标准; .NET与C ++没有任何关系。但是,Microsoft的C ++ / CLI语言是 sorta C ++,但事实并非如此。
答案 3 :(得分:-3)
你放弃了用基本类型这样做的想法,并使A成为一个可观察的。