小问题的困惑,在线等结果

leez0301 2009-02-24 03:20:30

下面的小程序怎么编译不过去,公有继承,子类为什么不能访问父类的公有成员?

#include <iostream>
using namespace std;

class base
{
public:
char* m_str;
base(char* str)
{
m_str = str;
}
~base()
{

}
void out()
{
std::cout<<m_str;
}
};

class derive : public base
{
derive(char* str):base(str)
{

}
~derive()
{

}
};

void main(void)
{

derive* a= new derive("c++\n");
a->out();
delete a;
}


错误1 error C2248: “derive::derive”: 无法访问 private 成员(在“derive”类中声明)
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leez0301 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fhtingtian 的回复:]
C/C++ code
class derive : public base
{
public: //
derive(char* str):base(str)
{

}
~derive()
{

}
};

改的地方已经注释了
[/Quote]

晕了 原来是子类的成员权限忘写了,默认成私有的!
谢谢楼上的,马上结贴给分。
fox000002 2009-02-24
  • 打赏
  • 举报
回复
少了一个 public

默认为 private

class derive : public base
{
public:
derive(char* str):base(str)
{

}
~derive()
{

}
};
bfhtian 2009-02-24
  • 打赏
  • 举报
回复

class derive : public base
{
public: //
derive(char* str):base(str)
{

}
~derive()
{

}
};


加上这行
bfhtian 2009-02-24
  • 打赏
  • 举报
回复

class derive : public base
{
public: //
derive(char* str):base(str)
{

}
~derive()
{

}
};

改的地方已经注释了
leez0301 2009-02-24
  • 打赏
  • 举报
回复
就这么个小问题没有人解答吗?

64,654

社区成员

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

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