1.C++中的结构体与C中的结构体有什么区别?
《1》.C中的结构体里面不可以有函数;C++中的结构体中是可以有函数!
《2》.空的结构体,在C语言中占0字节;在C++中占1个字节;
原来链表封装: 结构体:数据域和指针域
然后在结构体外部封装了很多的函数来操作链表,都有把链表作为函数的参数。
C++中为了更好的表达面向对象的,引入了类!自定义的数据类型!
2.C++中的类与C++中结构体的区别?
《1》.结构体的关键字:struct,类的关键字是 class;
《2》.结构体中的成员默认权限是 public;类中的成员默认权限是 private!
《3》.结构体的初始化方式和类的初始化方式不同
类中的访问权限有3种
Public: 公有的 类的内部和类的外部都可以访问
Private: 私有的 类的外部是不可以访问
Protected:受保护的 类的外部是不可以访问
3.什么是深拷贝和浅拷贝
浅拷贝:
深拷贝:
什么时候进行深拷贝、什么时候进行浅拷贝:
当在构造函数中有对指针类型的数据成员进行动态开空间的时候,要进行拷贝,就要进行深拷贝。深拷贝的构造函数要自己去写!因为系统给我们提供的拷贝构造是浅拷贝构造函数!
4.new和malloc的区别
1.new是运算符,malloc是函数;
2.malloc返回值时void *需要进行强转,而new责不需要
3.malloc需要指定开辟的内存空间,new不需要指定空间大小
4.Malloc开辟空间用free释放,new用delete.
5.引用和指针的区别
1.指针变量可以选择是否初始化,引用一定要进行初始化.
2.指针变量指向地址可以更改,引用一旦初始化就不可改变.使用引用更加安全.
3.指针保存地址,引用是给变量起别名.
4.指针变量会分配内存空间,引用不需要内存空间.
5.引用可以弱化指针,可以实现和指针一样的效果