【发布时间】:2015-02-08 11:07:21
【问题描述】:
我是 C++ 新手,我在 Windows 下使用 GCC 编译,当我创建任何本地对象时,编译器会发出错误消息“未定义的本地引用” 我想像下面的代码一样创建工厂函数 错误消息:“未定义对 `Widget::Widget()' 的引用”
class Widget
{
public:
Widget();
virtual ~Widget();
int data() { return data_; }
void setData(int val) { data_ = val; }
protected:
private:
int data_;
};
Widget* createWidget()
{
Widget* w = new Widget();
return w;
}
int callSomething(Widget* widget,Signal* sig,int x)
{
return 0;
}
int main()
{
callSomething(createWidget(),createSignal(),4);
}
【问题讨论】:
-
createSignal()是在哪里定义的? -
请包含实际的错误信息。
-
发布完整的错误消息及其引用的实际代码。
-
错误信息:未定义引用`Widget::Widget()'|
-
嗯,好的,Widget 构造函数在哪里?