如何将C ++中的2个变量与其他变量绑定,以便当一个变量改变另一个变量时?

时间:2010-08-24 18:52:31

标签: .net c++ visual-c++ variables binding

如何将C ++中的2个变量与另一个变量绑定,以便当一个变量改变另一个变量时?

例如我创建的Int A和Int B彼此绑定,而当我使用某个函数更改A时,另一个将自动更改为A的新值。

我对C ++ .net第4版的版本感兴趣。

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成为一个可观察的。