篝的小马 发表于 2016-3-15 22:40:46

C++虚继承问题求助

#ifndef MYFUNCTION_H_INCLUDED
#define MYFUNCTION_H_INCLUDED
#endif // MYFUNCTION_H_INCLUDED

#include<stdlib.h>
#include<iostream>

using namespace std;

class Myfunction
{
    public:
      Myfunction(int ,int );
      ~Myfunction();
      virtual void Sum();

      int m_a,m_b;
};


Myfunction::Myfunction(int a,int b)
{
    cout<<"Myfunction调用构造函数"<<endl;
    m_a = a;
    m_b = b;
}

Myfunction::~Myfunction()
{
    cout<<"Myfunction调用析构函数"<<endl;
}

Myfunction::void Sum()
{
   cout<<m_a + m_b<<endl;
}


#ifndef LITTLEBOY_H_INCLUDED
#define LITTLEBOY_H_INCLUDED

#endif // LITTLEBOY_H_INCLUDED

#include<stdlib.h>
#include<iostream>
#include"Myfunction.h"

using namespace std;

class Littleboy:public Myfunction
{
    public:
      Littleboy(int a,int b);
      ~Littleboy();
      virtual void Sum();

    private:
      int m_a,m_b;
};


Littleboy::Littleboy(int a,int b)
{
    cout<<"Littleboy的构造函数"<<endl;
    m_a = a;
    m_b = b;
}

Littleboy::~Littleboy()
{
    cout<<"Littleboy的析构函数"<<endl;
}

Littleboy::void Sum()
{
    cout<<m_a - m_b<<endl;
}


#include<stdlib.h>
#include<iostream>


#include"Littleboy.h"

using namespace std;

int main()
{
    Littleboy p(3,4);
    p.Sum();
}

n0noper 发表于 2016-3-16 09:17:58

儿子继承自父亲。 - 所以别光用儿子

要么,显式调用父类构造函数;Littleboy(a, b) : MyFunction(a, b)   得告诉父亲一声不是?

要么,给父类一个默认构造函数;MyFunction()         父亲必须先知道这个事才能让你做

另外给撸主一个建议,虚基类 这样写不是很舒服,这里根本没体现。可能撸主为了验证某一个问题,我多嘴了。
页: [1]
查看完整版本: C++虚继承问题求助