c09

来源:互联网 发布:淘宝高质量流量 编辑:程序博客网 时间:2024/06/14 01:06

1.虚继承,处理B,C继承A,而D又继承BC的问题

#include <iostream>using namespace std;class A{int i;public:A(int i):i(i){cout<<"A"<<i<<endl;}};class B : virtual public A{int b;public:B(int i):b(i), A(i){cout<<"B"<<b<<endl;}};class C : virtual public A{int c;public:C(int i):c(i), A(i){cout<<"C"<<c<<endl;}};class D : public B, public C{int d;public:D(int i):d(i),B(i),C(i),A(i)//不初始化A会报错{cout<<"D"<<i<<endl;}};int main(){B b(1);C c(2);D d(5);system("pause");return 0;}

2.析构函数可以显示调用

3.字符'\0'的ascii码为0

4.最大公约数:

int gcb1(int a, int b){int temp;while (b){temp = b;b = a%b;a = temp;}return a;}int gcb(int a, int b){if (b)return gcb(b, a%b);elsereturn a;}

5.求绝对值:a>0?a:-a;

6.父子类之间没有重载,同名覆盖

7.重载与返回类型无关

8.创建子类时,如果没有在初始化列表中初始化父类,默认调用父类无产构造函数

9.无名对象,语句结束立即释放

10.要求类有相应参数的构造函数则:A a = A(40); A a = (A)40; A a = 40;强制类型转换,默认有低级类型转向高级类型

11.常量对象不能调用普通成员函数,普通对象优先调用普通成员函数

12.class可以继承struct

0 0