错误ctor未定义

时间:2011-12-07 14:56:17

标签: c++ windows constructor poco-libraries

我有以下代码适用于Linux,但不适用于Windows(VS2008)

URI(): Poco::URI::URI();

我收到以下错误:

error C2039: '{ctor}' : is not a member of 'Poco::URI'
error C2437: 'URI': already initialized

我做了以下更改:

URI(){ Poco::URI::URI(); }

这两行代码是否相同?为什么第一行代码不能在Windows上运行?

编辑: 我正在使用Poco库,所以这是我的代码:

#include Poco/URI.h
class URI : public Poco::URI
{
public:
    URI(): Poco::URI::URI(){}
};

波索/ URI.h

namespace Poco {

class URI
{
public:
    URI::URI():
_port(0){}
private:
unsigned short _port;
};

3 个答案:

答案 0 :(得分:1)

不,他们的意思并不相同。后者在Poco::URI::URI构造函数中创建一个临时的匿名URI对象。

答案 1 :(得分:0)

我可能错了,但我的猜测是:

URI(): Poco::URI::URI();

就像尝试将初始化列表传递给没有实现的构造函数。 另一方面

URI(){ Poco::URI::URI(); }

这显然是构造函数的定义和实现。第一个给出错误,因为你正在“使用”构造函数进行初始化,但它没有正确存在。

答案 2 :(得分:0)

正确的方法:

URI() : Poco::URI(){}

我包含了一个不存在的命名空间URI

此外:

Poco :: URI :: URI(){} //在使用gcc编译器时有效但在Windows编译器上没有用