C++知识点提纲
类的基础知识
-
类是C++独有的,同样public也是,
-
类声明的时候不占内存,定义对象的时候对象占内存,编译后也不占空间,通常会把类的声明放在头文件中,把类的定义放在具体的文件中
-
类声明时最后有一个分号
-
类的成员?分成成员变量和成员函数,它们可以在类内定义,也可以在类外定义
成员变量,如果时用new分配堆空间,就要在析构函数中用delete释放空间
成员变量以m_开头
成员函数,类内定义默认时inline函数,推荐在类外定义
类外定义时用到::这个运算符,叫做域解析符,这个运算符不能被重载
其他不能被重载的 . .* sizeof() :?
-
怎么做类的定义?常规情况放在栈里面,指针定义放在堆里面
Student str(里面是初始化参数); //放在栈里,函数运行结束自动调用析构函数,这种用.来访问成员变量,.这个运算符时不能被重载的 Student *ptr = new Student(初始化参数); //放在堆里,必须用delete调用析构函数 //下面这种类的对象是匿名的,有了指针以后不用.这个运算符访问,用->这个运算符访问
-
类的封装特性,实际上就是public protected private三类关键字,
它们在类内均可以被访问,在类外只有public可以被访问,protected只有在继承的时候用到,子类可以被访问
默认是private
结构体默认是public,结构体中也可以定义函数
可以定义public成员函数访问private成员变量
也可以用友元函数访问private成员变量
-
类的构造函数
必须时public的,private也不会报错但是没有意义
可以重载很多次
构造时访问顺序:静态成员变量 父类构造函数 普通成员变量 本类构造函数
可以在类内定义,在类内定义默认为inline函数
可以在类外定义,类外定义不默认为inline函数,有普通定义形式和类的构造函数初始化列表
其中如果定义const类型必须用类的构造函数初始化列表
有默认构造函数
- <