请帮我改改这道题 必有重谢

qq29992579 2009-12-18 04:38:16
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
int x,y;
A(int a,int b){}
int ss(){return 0;}
};
class B:public A
{
public:
B(int a,int b,int c,int d):A(int a,int b){ }
int ss(){return 1;}
};
void main()
{
A sa;
B sb;
cout<<sa.ss()<<endl;
cout<<sb.ss()<<endl;
}
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq29992579 2009-12-18
  • 打赏
  • 举报
回复
吼吼 我解决了问题
kouwenlong 2009-12-18
  • 打赏
  • 举报
回复
左上角有结贴。
howlet2 2009-12-18
  • 打赏
  • 举报
回复
给我吧
qq29992579 2009-12-18
  • 打赏
  • 举报
回复
怎么给分啊
凹哩凹哩 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 namelij 的回复:]
C/C++ code
#include<iostream>usingnamespace std;class A
{public:int x,y;
A(int a,int b){}int ss(){return0;}
};class B:public A
{public:
B(int a,int b,int c,int d):A(int a,int b){ }int ss(){return1;}
};void main()
{
A sa;
B sb;
cout<<sa.ss()<<endl;
cout<<sb.ss()<<endl;
}
因为你已经在类中定义了构造函数,该构造函数有形参,所以编译器不会再为你合成默认构造函数,而你的A sa显然就会出错
如果变成A sa(2,3)就好了,或者你也可以如下
C/C++ code
#include<iostream>usingnamespace std;class A
{public:int x,y;
A(){}
A(int a,int b){}int ss(){return0;}
};class B:public A
{public:
B(){}
B(int a,int b,int c,int d):A(a, b){ }int ss(){return1;}
};void main()
{
A sa;
B sb;
cout<<sa.ss()<<endl;
cout<<sb.ss()<<endl;
}
这样的话,就可以 A sa
[/Quote]

这样改是正确的,
要这样定义A ss,
就要有缺省的构造函数A(){}
或者有带默认值的构造函数 A(int a=0,int b=0){}int ss(){return0;}
qq29992579 2009-12-18
  • 打赏
  • 举报
回复
烦死了啊 5555 怎么办啊 那个题你们给改错了
qq29992579 2009-12-18
  • 打赏
  • 举报
回复
为什么 我点一个连接 我的用户就显示游客啊 5555 还要我登陆 我 55555给人家的贴留言 都要我 重新登陆一下
冻结 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 healer_kx 的回复:]
改什么啊?改成错误的?
[/Quote]
引用
healer_kx 2009-12-18
  • 打赏
  • 举报
回复
改什么啊?改成错误的?
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
class A
{
public:
int x,y;
A(int a,int b){}
int ss(){return 0;}
};
class B:public A
{
public:
B(int a,int b,int c,int d):A(int a,int b){ }
int ss(){return 1;}
};
void main()
{
A sa;
B sb;
cout < <sa.ss() < <endl;
cout < <sb.ss() < <endl;
}

因为你已经在类中定义了构造函数,该构造函数有形参,所以编译器不会再为你合成默认构造函数,而你的A sa显然就会出错
如果变成A sa(2,3)就好了,或者你也可以如下

#include <iostream>
using namespace std;
class A
{
public:
int x,y;
A(){}
A(int a,int b){}
int ss(){return 0;}
};
class B:public A
{
public:
B(){}
B(int a,int b,int c,int d):A(a, b){ }
int ss(){return 1;}
};
void main()
{
A sa;
B sb;
cout <<sa.ss() <<endl;
cout <<sb.ss() <<endl;
}

这样的话,就可以 A sa

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧