【发布时间】:2019-10-10 01:45:42
【问题描述】:
#include 问题
class widget { };
class fubar : public widget { // 1
void value_parameter(widget); // 2
void ref_parameter(widget &); // 3
void ptr_parameter(widget *); // 4
virtual void value_parameter(widget); // 5
virtual void ref_parameter(widget &); // 6
virtual void ptr_parameter(widget *); // 7
widget value_return(); // 8
widget & ref_return(); // 9
widget * ptr_return(); // 10
widget instance_value_member; // 11
widget & instance_ref_member; // 12
widget * instance_ptr_member; // 13
static widget static_value_member; // 14
static widget & static_ref_member; // 15
static widget * static_ptr_member; // 16
};
哪些行需要包含? (#include "widget.hpp")
【问题讨论】:
-
你认为是哪几行,为什么?
-
代码暗示
widget是在fubar之前提供的,但问题的其余部分则相反。如果是第一种情况,则任何成员都不需要#include(已经提供了widget)。如果是第二个,那么您从widget继承这一事实意味着您需要#include而不管fubar的其余定义如何。 -
@Sergio Legaz Ruiz 你忘了标记这条线类 fubar : public widget {..:)
-
欢迎来到 StackOverflow!请选择一个更具描述性的标题;原样的标题不太可能对未来的访问者有所帮助。
-
.... 说得好听
标签: c++ class overloading definition incomplete-type