阅3、4

来源:互联网 发布:linux安卓 编辑:程序博客网 时间:2024/05/29 13:05

代码3:

#include <iostream>using namespace std;class A{private:    int x;protected:    int y;public:    int z;    A(int a,int b,int c)    {        x=a;        y=b;        z=c;    }    int Getx(){return x;}    int Gety(){return y;}    void ShowA()    {        cout<<"x="<<x<<'\t';        cout<<"y="<<y<<'\t';        cout<<"z="<<z<<'\n';    }};class B:public A{private:    int m,n;public:    B(int a,int b,int c,int d,int e):A(a,b,c)    {        m=d;        n=e;    }    void Show(){    cout<<"m="<<m<<'\t'<<"n="<<n<<'\n';    cout<<"x="<<Getx()<<'\t';    cout<<"y="<<y<<'\t'<<"z="<<z<<"\n";    }    int Sum()    {        return (Getx()+y+z+m+n);    }};int main(){    B b1(1,2,3,4,5);    b1.ShowA();    b1.Show();    cout<<"Sum="<<b1.Sum()<<'\n';    cout<<"x="<<b1.Getx()<<'\t';    cout<<"y="<<b1.Gety()<<'\t';    cout<<"z="<<b1.z<<'\n';    return 0;}//如果把public改为protected,由于在声明派生类时对基类采用保护继承方式,//因此在派生类中访问属性为保护,则不能在类外调用它。

运行结果:

 

代码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(i),two(j),data(k){    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;}//将Whole类的构造函数改成Whole::Whole(int p,int i,int j,int k):Part(p),two(i),one(j),data(k)出现警告//因为顺序不同,出现警告;类成员要依次初始化。

运行结果:

 
学习心得:

  当看到出现这么多的时候,都惊呆了;我的天,搞不定,只能找兄弟帮忙喽!

0 0