标题:C++程序编译错误,能帮忙看看吗?
只看楼主
全世界安静
Rank: 2
等 级:论坛游民
帖 子:104
专家分:65
注 册:2012-6-4
结帖率:31.58%
 问题点数:0 回复次数:4 
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
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
说得很清楚了
2012-07-18 14:12
全世界安静
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
xunmi_1993
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2012-7-3
得分:0 
楼上说的有道理。。。
2012-07-23 15:16
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
发现问题之后应该先试试自己想想看。不要刚一有问题就问,尤其有些问题的答案可能非常明显。
2012-07-23 23:32



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




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

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