其实我的问题都在标题中。
无论如何:
我有一个类,我使用显式构造函数:
.h
class MyClass
{
public:
explicit MyClass(const string& s): query(s) {}
private:
string query;
}
是否必须在 implementation(.cpp) 文件中放置显式关键字?
其实我的问题都在标题中。
无论如何:
我有一个类,我使用显式构造函数:
.h
class MyClass
{
public:
explicit MyClass(const string& s): query(s) {}
private:
string query;
}
是否必须在 implementation(.cpp) 文件中放置显式关键字?
不它不是。该explicit
关键字只允许在标题中使用。我的 gcc 说:
test.cpp:6: error: only declarations of constructors can be 'explicit'
对于以下代码:
class foo {
public:
explicit foo(int);
};
explicit foo::foo(int) {}
关于后续问题(你真的应该作为一个单独的问题提交),初始化列表与构造函数的实现(它的函数体)一起,它可能在头文件或 cpp 文件中。