⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a_7_3.cpp

📁 C++应用教程原码,里面包含该书中有十三章内容的代码,详细具体
💻 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 + -