zoukankan      html  css  js  c++  java
  • c++学习--继承与派生

                                    继承和派生

    1 含有对象成员(子对象)的派生类的构造函数,定义派生类对象成员时,构造函数的执行顺序如下:

      1 调用基类的构造函数,对基类数据成员初始化;

      2 调用对象成员的构造函数,对对象成员的数据成员初始化;

      3 执行派生类的构造函数体,对派生类数据成员初始化。

    代码如下:#include<iostream.h>

    class base{

       int x;

    public:

             base(int i)

             {

                       x=i;

                       cout<<"基类的构造函数"<<endl;

             }

             ~base()

             {

                       cout<<"基类的析构函数"<<endl;

             }

             void show()

             {

                       cout<<x<<endl;

             }

    };

    class derived:public base

    {

             base d;

    public:

             derived(int i):base(i),d(i)

             {

                       cout<<"派生类的构造函数"<<endl;

             }

             ~derived()

             {

                       cout<<"派生类的构造函数"<<endl;

             }

    };

    int main()

    {

             derived obj(5);

             obj.show();

             return 0;

    }

      撤销对象时,析构函数的调用顺序正好相反

    2 多个基类构造函数的执行顺序,则严格按照派生类声明来执行

    实验:构建一个类book,其中含有两个私有数据成员qu和price, 建立一个有5个元素的数组对象,将qu初始化为1~5,将price 初始化为qu的10倍。显示每个对象的qu*price。

    代码如下:

        1 #include<iostream.h>

    class book{

    private:

             int qu,price;

    public:

             book(int q,int p)

             {

            qu=q;

                       price=p;

             }

             void show()

             {

                       cout<<"qu*price="<<qu*price<<endl;

             }

    };

    int main()

    {

             book ob[5]={

                       book(1,10),book(2,20),book(3,30),book(4,40),book(5,50)

             };

        for(int i=0;i<5;i++)

                       ob[i].show();

             return 0;

    }

    2使用 C++ 的类建立一个简单的卖玩具的程序。类内必须具有玩具单价、售出数量以及每种玩具售出的总金额等数据,并为该类建立一些必要的函数,并在主程序中使用对象数组建立若干个带有单价和售出数量的对象,显示每种玩具售出的总金额。

    代码如下:

    #include<iostream.h>

    class toy{

    private: float price;

                        int count;

                        double sum;

    public: toy(float x,int y)

                       {

                                price=x;

                                count=y;

                       }

                       double Countsum()

                       {

                                sum=price*count;

                                return sum;

                       }

    };

    int main()

    {

             toy ob[5]={

             toy(12.3,10),toy(11.4,5),toy(17.8,19),toy(16.7,15),toy(3.5,10)

             };

             for(int i=0;i<5;i++)

                       cout<<"价格是:"<<ob[i].Countsum()<<endl;

             return 0;

    }

  • 相关阅读:
    ios 数据类型转换 UIImage转换为NSData NSData转换为NSString
    iOS UI 12 block传值
    iOS UI 11 单例
    iOS UI 08 uitableview 自定义cell
    iOS UI 07 uitableviewi3
    iOS UI 07 uitableviewi2
    iOS UI 07 uitableview
    iOS UI 05 传值
    iOS UI 04 轨道和动画
    iOS UI 03 事件和手势
  • 原文地址:https://www.cnblogs.com/GoodPMj/p/5239929.html
Copyright © 2011-2022 走看看