在我的下面的示例中,为什么我必须在cpp文件中完全限定自由函数的名称以避免链接错误,而对于类函数却不需要呢?你能解释一下其中的区别吗?
ctest.h:
感谢您的时间和帮助。
namespace Test
{
int FreeFunction();
class CTest
{
public:
CTest();
~CTest();
};
}
ctest.cpp:
#include "ctest.h"
using namespace Test;
// int FreeFunction() -> undefined reference error
int Test::FreeFunction() -> works just fine
{
return 0;
}
CTest::CTest() -> no need to fully qualify name, i.e. Test::CTest
{}
CTest::~CTest()
{}
感谢您的时间和帮助。
void
作为参数是有用的,但在C++中被认为是无用和不良风格:http://www.parashift.com/c++-faq-lite/newbie.html#faq-29.4 - log0