我的问题一定很简单,但我找不到一个正确的方法,将初始化成员的构造函数分割成.h和.cpp(定义和实现),文件。
如果说,我有。
class Class {
public:
Class (int num, float fl ... ) : _num(num), _fl(fl) {}
...
private:
int _num;
float _fl;
};
我如何在.cpp文件中实现构造函数?如果在成员初始化后(在头文件中)我放了分号--编译器会抱怨。如果我保留{ },.cpp文件将重新定义构造函数,这也是错误的。当然,我可以明确地写下定义。这样,.h文件就是。
Class (int num, float fl ... );
而.cpp则是:
Class (int num, float fl ... ) {
_num = num;
_fl = fl;
}
但是有没有办法把成员初始化保留在头文件中呢?先谢谢了! 另外,在专业的编码中,什么会是首选呢?
你需要在.cpp中包含成员init和构造实现。
Class::Class (int num, float fl ... ):_num(num),_fl(fl)
{
// whatevever other init task you want to do goes here
}
最好在头文件和源文件中分别保留类成员的声明和定义,除非你处理的是模板参数。你可以用以下方式分别保存成员初始化。
class A {
public:
A(int x, float y );
private:
int _x;
float _y;
};
然后在源文件中,可以定义为。
A::A(int x, float y ) : _x(x), _y(y) {}