CLR
我自己定义的一个类
ref class tagReadBuffer
{
public:
int D0008;
int D0009;
};
在From里面
tagReadBuffer ^ a = gcnew tagReadBuffer;
Void Button(...)
{
tagReadBuffer ^b = a;
b->D0008=1;
b->D0009=1;
//问题就在这里 为什么 a的值也跟着改啊? 我刚步入CLR 希望前辈能告诉下 我用的是VS2010 是做C++的、
}
------解决方案--------------------
tagReadBuffer ^ a = gcnew tagReadBuffer;//生成指针、(其实还有个同步索引块)内存空间,指针指向内存地址
tagReadBuffer ^b = a; //生成指针,b与a相同
两个指针指向同一片内存,即同一个对象
这里要把指针和对象分开来看
你也可以按浅拷贝理解
------解决方案--------------------
CLR是CLI的实现版本,是一种运行时环境,.NetFramework的主要执行引擎.
拷贝是有一个新的内存.
@sj97a007
的解释正确