c++和c#关于对象赋值的一个重要差别
2018-01-17 16:59
483 查看
#include "stdafx.h" #include <string> #include <iostream> using namespace std; struct haitao { public: int agee; }; class guozhu{ public: guozhu(int a) :agee(a){} guozhu(){} int getAge(){ return agee; } void setAge(int aa){ agee = aa; } private : int agee; string namee; }; int _tmain(int argc, _TCHAR* argv[]) { guozhu tt(53); guozhu mm=tt; mm.setAge(99); cout << mm.getAge() <<" "<< tt.getAge() << endl; getchar(); return 0; }
上面c++代码打印结果:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication7 { class Program { class guozhu { private int age; public guozhu() { } public guozhu(int a) { age = a; } public void setAge(int aa) { age = aa; } public int getAge() { return age; } } static void Main(string[] args) { guozhu tt = new guozhu(53); guozhu mm = tt; mm.setAge(99); Console.WriteLine(mm.getAge()); Console.WriteLine(tt.getAge()); Console.Read(); } } }
上面c#代码编译后执行的结果如下:
最后总结:
当对象A赋值给同一类型的对象B后,那么A和B的关系是:
C# :B引用A,对B修改,即对A进行修改
C++: 赋值时,A将自己拷贝一份给B,A和B之间是相互独立的,互不影响
FR:海涛高软(hunk Xu) QQ技术交流群:386476712
相关文章推荐
- C++ 关于在一个类中定义另一个类的指针与对象
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic
- 关于将一个对象赋值给另一个对象
- 关于java对象复制clone 给一个对象赋值 会随原来的对象变化
- 关于一个给二维数组循环赋值问题的本渣研究出的解决办法[C#]
- 今天碰到的一个问题,关于通过基类对象的引用给子类赋值
- 给一个对象赋值 会随原来的对象变化 关于java对象复制clone(转)
- 关于模板编程的一个例子 来自深度探索c++对象模型
- C# PropertyInfo 将一个对象赋值到另一个相同名称的对象
- C#和C++的一个有意思的差别
- JavaScript中记一个关于对象属性赋值的小问题
- 一个关于c++字符串处理和delete[]与delete差别的问题
- C++对象赋值与C#对象赋值----C++与C#值传递与引用传递浅析
- C# 通过反射为一个对象赋值
- 关于c++中 类对象的赋值操作
- C++中关于将对象赋值给整形的过程。
- 关于for循环体里变量的声明的使用在c++、c#里的区别
- C# 关于JArray和JObject封装JSON对象
- Inside the C++ Object Model 第一讲: 关于对象
- 关于C++和C#的自定义数据类型转换的一些思考