阅读程序4

问题及代码:

/*copyright 计算机与控制工程学院
完成日期:2106年5月12日
作者:马艳艳
文件名称:阅读程序4
问题描述:无;
输出描述:结果;*/



#include <iostream>
using namespace std;
class Part  //部件类
{
public:
    Part();
    Part(int i);
    ~Part();
private:
    int val;
};
Part::Part(){
    val=0;
    cout<<"调用Part的默认构造函数:"<<val<<endl;
}
Part::Part(int i){
    val=i;
    cout<<"调用Part的构造函数: "<<val<<endl;
}
Part::~Part(){
    cout<<"调用Part的析构函数: "<<val<<endl;
}
class Whole: public Part{
public:
    Whole();
    Whole(int,int,int,int);
    ~Whole();
private:
    Part one;
    Part two;
    int data;
};
Whole::Whole(){
    data=0;
    cout<<"调用whole的默认构造函数: "<<data<<endl;
}
Whole::Whole(int p, int i,int j,int k):
    Part(p),one(j),two(i),data(k)  //问题2
{
    cout<<"调用whole的构造函数: "<<data<<endl;
}
Whole::~Whole(){
    cout<<"调用whole的析构函数: "<<data<<endl;
}
void f(){
    Whole w1;
    Whole w2(1,2,3,4);
}
int main(){
    f();
    return 0;
}







#include<iostream>
using namespace std;
class A
{
public:
   int n;
};
class B:public A {};   // class B:virtual public A{};
class C:public A {};   // class C:virtual public A{};
class D:public B,public C
{
public:
    int getn() {return B::n;}
};
int main()
{
   D d;
   d.B::n=10;
   d.C::n=20;
   cout<<d.getn()<<endl;
   return 0;
}

运行结果:

阅读程序4_第1张图片

阅读程序4_第2张图片


知识点总结:

对上边那个程序解析一下,主要就是主函数中的f(),是调用whole中的函数,然后先是无参的,在whole中的无参函数,存在继承则先调用父类中的成员,实现调用,在有类的组合,实现part1 ,part2.再实现whole的默认构造函数,其他以此类推;

你可能感兴趣的:(C++,类,codeblocks,类的继承)