结构与类

1、结构(结构体中可以包含函数,称为成员函数)

2、类(结构体默认情况下其成员是公有的public,类默认情况下为私有的private)

3、重载

条件:函数的参数类型、参数个数不同方可构成重载,只有返回类型不同不行。

注意:函数重载时需要注意带有默认参数的这种情况。

4、构造函数和析构函数

如果一个类中没有定义构造函数,编译器会在以下三种情况下提供默认的构造函数“

(1)、如果类有虚拟成员函数或虚拟继承父类时;

(2)、如果类的基类有构造函数(可以是用户自定义,也可以是系统提供的默认构造函数)

(3)、在类的所有非静态的对象数据成员,他们所属的类中有构造函数(同上)。

如果已经定义了一个带参的构造函数,还想要无参数的构造函数,就必须用户自己定义。

5、继承

(1)、class fish : public animal

(2)、子类中继承带参数的构造函数   fish():animal(400,300)

(3)、多重继承格式:

class 派生类名:访问权限 基类名称,访问权限 基类名称,访问权限 基类名称

{

};

6、多态性

在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时(延迟绑定)将会根据对象的实际类型来调用相应的函数。

7、纯虚函数(声明方式例如:virtual void breathe()=0;)

(1)纯虚函数让类先具有一个操作名称,没有操作内容,让派生类在继承时给出具体定义。

(2)含有纯虚函数的类叫做抽象类。这种类不能声明对象,只为派生类服务。

(3)函数的覆盖发生在派生类和基类之间,两个函数必须完全相同,且都为虚函数。不属于这种情况的都是隐藏。重载发生在一个类中。

8、引用与指针

(1)引用只是一个别名,与地址无关

(2)指针是地址,指针变量要存储地址值,占用内存空间。

你可能感兴趣的:(类,继承,多态,重载,结构)