📄 a_7_3.cpp
字号:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class A {
public:
A()
{ a=0; cout<<"调用缺省构造函数 A"<<endl; }
A(int i)
{ a=i; cout<<"调用构造函数 A"<<endl; }
~A()
{ cout << "调用析构函数 A"<<endl; }
void Print()
{ cout << a << ',';}
private:
int a;
};
class B1 :virtual public A {
public:
B1()
{ b1=0; cout<<"调用缺省构造函数 B1"<<endl; }
B1(int i,int j)
:A(i),b1(j)
{ cout <<"调用构造函数 B1"<<endl; }
~B1()
{ cout << "调用析构函数 B1"<<endl; }
void Print()
{ cout << b1 << ','; }
private:
int b1;
};
class B2 :virtual public A {
public:
B2()
{ b2=0; cout<<"调用缺省构造函数 B2"<<endl; }
B2(int i,int j)
:A(i),b2(j)
{ cout <<"调用构造函数 B2"<<endl; }
~B2()
{ cout << "调用析构函数 B3"<<endl; }
void Print()
{ cout << b2 << ','; }
private:
int b2;
};
class C :public B1,public B2 {
public:
C()
{ c=0; cout<<"调用缺省构造函数 C"<<endl; }
C(int i,int j)
:A(i),c(j)
{ cout <<"调用构造函数 C"<<endl; }
C(int i,int j,int k)
:B1(i,j),B2(j,k),c(k)
{ cout <<"调用构造函数 C"<<endl; }
~C()
{ cout << "调用析构函数 C"<<endl; }
void Print()
{ A::Print();B1::Print();B2::Print();
cout << c << ','<<endl<<endl;
}
private:
int c;
};
void main()
{ C c;
c.Print();
C c1(34,34);
c1.Print();
C c2(12,23,34);
c2.Print();
cin.get(); //等待结束,以便调测程序,可以删除
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -