【发布时间】:2013-01-27 03:44:30
【问题描述】:
我有一个具有多级继承的项目。是这样的
XMLs -> Entity -> Item 然后有许多从 Item 继承的项目类,然后从 Entity 继承。现在,我已经定义了每个类,如图所示
class Entity: public XMLs
{
public:
Entity() {}
virtual ~Entity() {};
//other functions
};
这是给我带来麻烦的一个。每当我尝试在我的主函数中创建一个 Item 对象或任何类型的对象时,它都会给我以下错误
/usr/include/c++/4.6/ostream:在构造函数“Entity::Entity()”中: /usr/include/c++/4.6/ostream:363:7: 错误:'std::basic_ostream<_chart _traits>::basic_ostream() [with _CharT = char, _Traits = std::char_traits]' 受保护
这是什么意思?我在谷歌上搜索的关于构造函数和受保护的所有内容都涉及我公开的关键字 protected。
【问题讨论】:
-
您没有发布您的实际代码。努力缩小问题范围,然后发布一个具有代表性的、最小的示例。
-
答案在您未共享的错误消息中。在您自己的源文件中提及特定行的错误消息。
-
@DrewDormann 同意 - 如此接近以至于过于本地化
-
有人的回答为我修复了它,但它说他们的帖子已被删除。我只需要使用 std::ostream* 而不是 std::ostream。
-
@user1357707:这是 Robᵩ 的回答,但我相信他删除了它,因为我的回答更彻底,但得出了相同的结论。
标签: c++ inheritance constructor public protected