首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

没合适的默认构造函数可用

2012-09-11 
没有合适的默认构造函数可用// test.cpp : 定义控制台应用程序的入口点。//#include stdafx.hclass Base{

没有合适的默认构造函数可用
// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"




class Base
{

public:
Base (int ){}
Base(float ){}

};


class A:public virtual Base
{
public:

A(int val):Base(val){}
};


class B:public virtual Base
{
public:
B(float val):Base(val){}
};

class AB:public A ,public B
{

public:

AB(int val, float val2):B(val2),A(val)//这里
{}


};

int main()
{
return 0;
}



[解决办法]

C/C++ code
#include "stdafx.h"class Base{    public:    Base (int ){}    Base(float ){}    };class A:public virtual Base{public:        A(int val):Base(val){}};class B:public virtual Base{public:    B(float val):Base(val){}};class AB:public A ,public B{    public:        AB(int val, float val2):Base(val),B(val2),A(val)//这里    {}        };int main(){    return 0;}
[解决办法]
探讨

1. “孙子” 类 的构造函数 初始化列表中 可以 对”爷爷”进行 构造?

2. 我可以Base提供了2个版本的构造函数

你是使用了 Base(int )这个版本,

接着分析

B(float), A(int)

B(float)===============> Base(float)

A(int)=================>Base(int)

……

热点排行