1.C++ 类的派生与调用中,对子类定义对象时,先调用基类的构造函数,然后依次调用派生类的构造函数。当在派生类中调用基类的成员函数时,如果该函数在基类中调用,而函数内又包含成员函数,那么函数中的成员函数应该先从派生类中调用。在程序结束时先调用派生类的析构函数,最后调用基类的构造函数。例如:

#include "stdafx.h"
#include <string.h>
#include<iostream>
using namespace std;

class A
{
protected:
    int m_data;
public:
    A(int data=0)
    {
        m_data=data;
        cout<<"A print"<<endl;
    }
    int GetData()
    {
        cout<<"A getdata"<<endl;
        return doGetData();
    }
    virtual int doGetData()
    {
        return m_data;
    }
    ~A()
    {
        cout<<"a destuct"<<endl;
    }
};

class B:public A
{
protected:
    int m_data;
public:
    B(int data=2)
    {
        m_data=data;
        cout<<"C print"<<endl;
    }
    int doGetData()
    {
        return m_data;
    }
    ~B()
    {
        cout<<"c destruct"<<endl;
    }
};
void main()
{
    B b(10);
    cout<<b.GetData()<<endl;
    //system("PAUSE");
   
}

 

posted on 2016-07-20 11:17  卡贝天师  阅读(128)  评论(0编辑  收藏  举报