前言
Hello,我是修齊。
学习C++的第一百零九天,用心学习。
在这里记录一些学习的东西和学习的心情,内容主要是一些自己学习整理的小笔记。
一、多重继承
1.声明的一般形式:
class<派生类名>:<派生方式1><基类名1>...<派生方式n><基类名n>
{
派生类成员声明
}
二、代码
1.定义两个基类,并定义的派生类继承于两个基类
class base 1//定义基类base
public://定义基类成员
int x;
void print()//定义基类公有成员函数
{
cout<<"class base1:x="<<x<<endl;
}
};
class base2//定义基类base2
{
public://定义基类成员
int x;//定义派生类成员
void print()//定义派生类成员函数
{
cout<<"class base2:x="<<x<<endl;
}
};
2.类deried公有继承于类base1和类base2,是一个多重继承。
class derived:public base1,public base2//多重继承于base1和base2
{
public://定义派生类成员
int x;
void print()//定义派生类成员函数
{
cout<<"class derived:x="<<x<<endl;
}
};
void main()
{
deried ob;//创建对象
ob.x=10;//调用派生类成员
ob.print();
ob.base1::x=20;//调用基类base1成员
ob.base1::print();
ob.base2::x=30;//调用基类base2成员
ob.base2::print();
}
在main()主函数中创建了一个派生类的对象后,
通过该对象访问派生类中的成员与普通访问相同,
而访问基类中的成员,如出现二义性则需要使用作用域运算符来访问。
三、多重继承的构造函数和析构函数
1.多重继承构造函数的一般形式
<派生类名>::<派生类名>(参数总表)::基类名1(参数表1),..,基类名n(参数名n),
对象成员名1(对象成员参数表1),...,对象成员名m(对象成员参数m)
{
//派生类新增成员的初始化语句
}
2.类derived公有继承于类base1、类base2和base3。
class derived::public base2,public base1,public base3//定义派生类
{
private:
base1 ob1;//创建基类对象
base2 ob2;
base3 ob3;
public:
derived(int x,int y,int z,int v):base1(x),base2(y),ob1(z),ob2(v)//派生类的构造函数
{
cout<<"constructing derived"<<endl;
}
};
void main()
{
derived ob(1,2,3,4);//创建派生类对象
}
1.派生类的构造函数为:输出“constructing derived"的信息。
2.主函数main()中创建派生类的对象ob时,先调用base2的构造函数,
再调用base1的构造函数,最后调用base3的构造函数。
3.声明派生类时,声明顺序为base2、base1、base3,
释放对象调用析构函数时,顺序正好与构造函数顺序相反。
四、小脑袋,大疑问
C++面向对象编程篇:
1.类和对象(构造、拷贝构造、析构、友元函数)
2.继承(继承与派生、派生类的构造和析构函数、多重继承、虚基类)
3.多态(多态、函数重载、虚函数、抽象类)
4.运算符重载(运算符重载的形式、特殊运算符的重载、类类型转换)
5.输入/输出流(输入/输出引入、标准输入/输出流、输入/输出流成员函数、输入/输出的格式控制、自定义数据类 型的输入/输出)
看了一点点,代码越来越长了,现在有几张知识点都没记住,看来下次得回来再看几遍,就越学越难的时候,抽身看看大纲是咋样的,了解后续了解自己的进程,沉淀内心的浮躁,再对后续保持一颗期待的心,加油
上述内容如有侵权,联系即删。
感谢阅读-感谢支持