问个类声明问题

5204711353 2005-04-24 10:36:22
#include <iostream.h>
class stock
{
private:
int h;
fun()
{
cout<<"sdada\n";
}
protected:
int f;
public:
int x;
stock(int a=0)
{
f=a;
h=a+1;
}
j()
{
cout<<"kd"<<endl;
}
};
class stockplus :public stock
{
private:
int i;
stock h;
public :

int x;
show()
{
h.j();
cout<<i<<endl<<f<<endl;
f++;
cout<<f<<endl;
x=2;
cout<<x;

}
win()
{
cout<<"win"<<endl;
}
stockplus::stockplus(int a=0) :stock(a),i(21){ }
};

int main()
{
stockplus y;
y.show();
}
在stockplus类中定义拉stock h!所以h可以在类中调用stock的共有方法!
但是我为什么不可以在stock h这一行下断点检测他是否调用拉构造函数呢?
系统不可以把断点下在这里!
后来我在stockplus类中公有的部分定义拉stock h,
为什么不可以在main()这个函数里面用h直接调用stock类的方法呢?
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
useresu 2005-04-25
  • 打赏
  • 举报
回复
少了点东西,呵呵补上

类在调自己的构造函数之前,会先调用成员和基类的构造函数,
前提是基类(^_^这里啊: 和成员)有默认构造,
useresu 2005-04-25
  • 打赏
  • 举报
回复
不用设断点了,我可以告诉你,
会调用stock的构造函数,
因为stock有默认构造,
类在调自己的构造函数之前,会先调用成员和基类的构造函数,
前提是基类有默认构造,
而你的
stock(int a=0)
{
f=a;
h=a+1;
}
是默认构造函数.

但是你在派生类中包含基类对象做成员干什么用啊?
这种结构是不好的.
bing_huo 2005-04-24
  • 打赏
  • 举报
回复
后来我在stockplus类中公有的部分定义拉stock h,
为什么不可以在main()这个函数里面用h直接调用stock类的方法呢?

不明白你的意思 又继承又包含~~~~~
bing_huo 2005-04-24
  • 打赏
  • 举报
回复
系统不可以把断点下在这里!

可以断在构造函数里。。。。。


64,652

社区成员

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

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