(1.1.12)结构体和类的区别

来源:互联网 发布:it好不好学 编辑:程序博客网 时间:2024/06/06 21:43
 (1)在C++中只有两点区别:   
     (1)class中默认的成员访问权限是private的,而struct中则是public的。   

     (2)从class继承默认是private继承,而从struct继承默认是public继承。

c里面的struct只是变量的聚合体,struct不能有函数
c++的struct可有构造和析构函数

【从使用角度区分】

1)Struct结构体是“复合类型”,其功能等同与基本的int,double的用法,尽管struct也可以写方法,但是不赞成这样做。因为struct的引入是为了解决“多类型”的问题(比如一个学生记录包含id,name等不同基本类型的组合,单个int,string无法满足,所以才出现了struct)。类是组成面向对象编程的基础,功能远远大于结构。

2)Struct因为默认继承System.ValueType(可以这样理解),因此说,一个结构赋值给另外一个结构的时候,相当于做了拷贝复制功能(两者完全没有联系,假设A=B,那么B和A各自改变互不影响);但是class的话A=B,A和B共同引用同一个单元,A或者B有一方改变就影响了另外一方。本质上class是封装的指针而已。


【从构造函数区分】

结构体的默认构造函数是无参的构造函数,但是如果你为一个结构体定义了带参的构造函数,你绝对不能再重复去写一遍那个无参的空构造函数;类相反——定义了一个带参的构造函数,绝对要再重复定义一次空构造函数,否则你无法调用空构造函数。

0 0
原创粉丝点击