刚刚又被问的哑口无言,首先争论了一个话题..忘了 ,反正我是错了,之后就乱了阵脚,这会儿冷静下来总结一下
1.首先什么是纯虚函数:
/*
===纯虚函数===
一个类是不是抽象类就看你里面到底有没有纯虚函数 virtual void eat() = 0
定义:虚函数 = 0
/---
纯虚类就相当于接口,不能被别人实现,
只能被继承,在使用里面的东东
------类似OC协议-------
---/
*/
2.同一个类的不同对象对象共用同一个虚表,虚表地址一样
同一个类不同对象共用相同的函数体
3.然后怎么初始化const变量,因为const变量不能直接初始化
招数:就是用初始化列表解决
4.静态变量和静态函数如何初始化:
招数:首先定义的时候在普通变量或函数前面加上static变成静态的,
之后初始化的时候,直接在类的外面初始化(和成员函数一样---前面不再需要添加static)
调用的招数:
用类名::静态变量(函数) 直接去掉用
或者用类对象名->静态变量(函数)去掉用(像普通的一样) 不推荐
5.成员函数
/*const的成员函数
如果成员函数是const 那么在他里面不能修改类的属性和变量的值
它里面调用的变量都会成为readonly
//=====除非在类的成员变量前加上mutable,那就可以修改了
*/
6.静态函数 和 this
静态函数里面不能调用成员类的实例变量,不能使用this!