如果您在头文件中内联定义了函数,并且想要将函数定义主体移出标题并移至.cpp文件中,则不能只按照原样剪切和粘贴函数在标题中定义;你必须从这个语法转换:在.cpp文件中,用“class Foo {void method(){}}”定义方法;“而不是“void Foo :: method(){}”?
class Foo
{
void method1() { definition(); }
void method2() { definition(); }
void method3() { definition(); }
};
要这样:
void Foo::method1() { definition(); }
void Foo::method2() { definition(); }
void Foo::method3() { definition(); }
编辑:只是想指出的是什么,我希望避免被其前面键入类名每个方法名称。它可能看起来很小,但是当你将许多函数定义从头文件移出并存入cpp文件时,它会相加。而当返回类型特别复杂时,您必须找到每行返回类型结束的位置,并且每个方法名称都开始。
所以我的问题是,我必须像上面第二块代码那样做吗?如果我这样做什么(是以下符合标准的C++?):
foo.h中:
class Foo
{
void method1();
void method2();
void method3();
};
在Foo.cpp中:
#include "Foo.hpp"
class Foo
{
void method1() { definition(); }
void method2() { definition(); }
void method3() { definition(); }
};
“我知道,我会用正则表达式!” – 2009-12-08 01:43:28
@anon:... LOL:D – jkp 2009-12-08 01:44:44
“然后我遇到了两个问题!” – KeithB 2009-12-08 02:11:06