标题:C++程序编译错误,能帮忙看看吗?
取消只看楼主
全世界安静
Rank: 2
等 级:论坛游民
帖 子:104
专家分:65
注 册:2012-6-4
结帖率:31.58%
 问题点数:0 回复次数:1 
C++程序编译错误,能帮忙看看吗?
#include <iostream>
using namespace std;
class A{
    int a,b;
public:
    A(int x,int y){
        a=x;
        b=y;
    }
};
class B:public A{

};
class C:public B{
public:
    C(int x,int y):A(x,y){
    }
};

int main(){
    C c(1,2);
    return 0;
}
rror C2512: 'B' : no appropriate default constructor available
搜索更多相关主题的帖子: available default include public return 
2012-07-18 13:34
全世界安静
Rank: 2
等 级:论坛游民
帖 子:104
专家分:65
注 册:2012-6-4
得分:0 
个人理解:构造C类时,首先要调用B类的构造函数,而构造B类,首先要调用A类的构造函数,因为缺少A类构造函数需要的两个参数,B类无法构造,所以提示B类构造不成功。
程序改为:
#include <iostream>
using namespace std;
class A{
    int a,b;
public:
    A(int x,int y){
        a=x;
        b=y;
    }
};
class B:public A{
public:
   B(int x,int y):A(x,y){
    }
};
class C:public B{
public:
    C(int x,int y):B(x,y){
    }
};

int main(){
    C c(1,2);
    return 0;
}
OK了!
2012-07-18 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-373624-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018308 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved