基础
一、
1、什么是C++
c++是c语言的升级版,在c的基础上增加了很多功能。是一种高级语言。
2、什么是面向对象,什么又是面向过程
c语言就是面向过程的,c++就是面向对象的
举例:a+b
直接计算a+b 就是面向过程
面向对象就是给a+b穿上了一层衣服。不是直接计算a+b
3、c++的灵魂,c++类
类大家可以看成是把它看成c的结构体的升级版。类的成员不仅可以是变量,也可以是函数。
4、如何定义一个类。
class student
{
public:
char name[64];
char age;
};
5、什么是对象?
对象是类的实例化 : 例如 student my; // my就是对象
student *my = new student; // 在堆里面定义
6、删除对象用的是 delete my; //目的是释放堆里面的内存
7、怎么访问类里面的成员:
与c语言的结构体是一样的,普通变量通过 . 来访问,指针用的是 -> 来访问
8、类函数的成员。
因为类里面的额城建院不仅是变量,也可以是函数
第一步:在类里面声明
第二步:写到类的外面
访问函数和变量是一样的
9、类的访问修饰符。
类的访问修饰符是对类的成员权限管理
public : 表示函数和变量是公开的,任何人都可以访问。
private( 私人的,私立的) : 表示函数和变量只能在自己的类里面自己访问自己,不能通过对象来访问
如果要强行访问,则需要想通过访问它所在的类,从而绕了一个弯就能访问到了
protected(受保护的,保护) : 表示函数和变量只能在自己的类里面自己访问自己,但是可以被派生
类来访问的
二、
1、类函数的重载特性。
类函数的重载特性就是在类里面定义同名的函数,但是参数不同的函数(这种情况在c语言中我们是不允许的)
譬如:
class student {
public:
student(); //构造函数和类名一样
char name[64];
int age;
void test();
void test(int a); //建立同名函数,但是要传参
private:
int haha;
};
重载函数在调用时,会根据参数的类型,然后去自动去匹配。
2、构造函数和析构函数。
析构函数:假如我们定义了析构函数,当对象被删除或者生命周期结束的时候,就会触发析构函数。
构造函数:假如我们定义了构造函数,就会触发这个构造函数。
怎么定义析构函数和构造函数?
构造函数和析构函数的名字必须和类的名字必须是一模一样的。
构造函数是可以被重载的。相当于驱动的module_init()
析构函数不能被重载. 相当于驱动中的module_exit();
三、
3、类的继承。
类的继承允许我们在新的类里面继承父类的public 还有protected 部分,private 是不能被继承的。
当我们觉得这个类不好的时候,可以使用类的继承,添加我们需要的功能
格式:
class 儿子 :: public 爸爸
{
public:
.....
protected:
}
class mystudent :public student
{
public:
int grade;
};
如果子类里面去访问父类的成员?
也是通过 . 和 ->(指针) 来访问的。
四、
虚函数和纯虚函数
虚函数: 有实际定义的,允许派生类对它进行覆盖式的替换,virtual 来掩饰。
纯虚函数:没有实际定义的虚函数就是纯虚函数。
举例:
virtual void test(); //虚函数
virtual void testa(){}; //纯虚函数
怎么定义一个虚函数?
用virtual 来修饰,虚函数是用在类的继承上的。
虚函数的优点:
可以预留接口,实现分工合作。
譬如说,一人负责写驱动的,并不负责写应用,用了虚函数之后,可以让会写应用的人来写应用 因为使用虚函数,
所以可以直接覆盖掉前面的函数,这样就可以实现分工合作。