C++学习中的一些问题
C和C++中struct的区别
- C语言中的结构体不能为空。
- C语言中的结构体只是一个复杂的数据类型,只能定义成员变量,不能定义成员函数,但是可以定义函数指针;C++可以定义成员函数和成员变量。
- C++的结构体和类体现了数据结构和算法的结合。
- C语言中定义结构体变量时,struct不可以省略:C++中定义结构体变量时,struct可以省略。
C++中struct与class的区别
原来C++中struct也可以有构造函数和析构函数,我今天才知道!!!
- 在C++中结构体的数据默认的访问权限是public,而在类中,默认的访问权限为private。
- 如果没有多态和继承,在C++中,struct和class存取效率完全相同。
- class可以用于表示模板类型,struct不行。
=default 和=delete
=default
、=delete
是C++11的新特性,分别为:显式缺省(告知编译器生成函数默认的缺省版本)和显式删除(告知编译器不生成
函数默认的缺省版本)。C++11中引进这两种新特性的目的是为了增强对“类默认函数的控制”,从而让程序员更加精准地去控制默认
版本的函数。
"=default"不仅仅局限于类的定义内,也可以用于类的定义外来修饰成员函数