黑马程序员技术交流社区

标题: 结构体和类者有区别 [打印本页]

作者: 黄新    时间: 2012-12-11 11:45
标题: 结构体和类者有区别
  看起来结构体和类有很大相似性。结构体和类都有构造函数和析构函数,结构体和类的成员里都有字段,属性和方法。它们都有哪些不同点呢?
  结构是值类型,类是引用类型,这一点我不太理解。值类型是说结构和数字变量,字符变量一样的。比如说:
struct A {}     A   x=new A();    x1=x;  执行 x1= x这句话的时候 , 是为x1也重新开辟一块内存空间,然后把x内存copy一块给x1吗。如果A是类的话,就是让 x1指向x指向的对象。 是这样的吗?
作者: 马毅    时间: 2012-12-11 15:28
值类型是通过copy值来复制的,而引用类型复制的时候值copy对heap的引用~~
作者: 马毅    时间: 2012-12-11 15:31
例如..a是一个struct ,当把a  copy 给 b 的时候,是先在内存中给b开一块空间,然后把a的值copy一份放进去~~
作者: 黑马丁巍    时间: 2012-12-11 15:52
值类型赋值的时候是传递拷贝,比如像int,bool,char等都属于值类型,而普通的对象则是引用类型,赋值的时候是传递引用
struct A {}     A   x=new A();    x1=x; 你写的不对,声明结构的形式应该为  
(访问修饰符)public Struct (结构名)Person  
{
定义结构成员  (注意定义的时候+public)
}
Person P1;
后面你的理解是正确的,值类型是复制一份传送过去,对象的引用就是x1指向x指向的对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2