2014-10-08 80 views
2

失败,我有一个类中的一些纯虚函数,即在头文件中定义,如:纯虚函数XCode中

virtual string GetStdString() = 0 
{ 
    // some code 
} 

在Windows上工作正常,但编译具有的XCode我有一个错误

“Expected”;“在声明列表结尾处“

指向函数名称的行尾。

回答

2

不管你在Windows上使用什么编译器都是错误的。该代码不应该编译。你可以提供一个纯虚拟功能的机构,但你不能这样做在相同的声明(几乎只是因为标准这么说)。像这样更改您的代码:

class TheClass 
{ 
    virtual string GetStdString() = 0; 
}; 

inline string TheClass::GetStdString() 
{ 
    // some code 
} 
+0

非常感谢。使用你的提示,我制定了一个正确的请求,并找到了几个链接。例如http://www.programmerinterview.com/index.php/c-cplusplus/pure-virtual-function/ – nikitablack 2014-10-08 10:43:58

+0

这个标准似乎在这里对我来说是任意的,但我喜欢你的解释“......因为标准是这样说的” 。 :-) – TobiMcNamobi 2014-10-08 10:54:02