C#用多了最近又回到C++编程发现有些致命的区别如果不注意很可能导致一些莫名其妙的bug引用类型就是其中一个
在C#中引用跟指针比较接近除了值类型(int float struct等)其它类型都是引用类型它本身是一个栈上面的变量指向堆上面的具体实例可以随意更改它指向的实例
而在C++中引用是变量的一个别名而已它需要在初始化时指向一个实例之后对它的操作就相当于在原来实例上做修改大部分情况下像C#更改引用的用法是可以编译通过的
ClassA a a;
ClassA &a = a;
a = a;
不要以为a现在是a的引用最后一句是将a的赋值给a了!
谨以此篇献给C#的熟练程序员 :)