class 成员初始化的实现文件 (.cpp)
Implementation file (.cpp) for a class with member initialization
我的问题一定很简单,但我找不到正确的方法将带有初始化成员的构造函数拆分为 .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中有成员初始化和构造实现
Class::Class (int num, float fl ... ):_num(num),_fl(fl)
{
// whatevever other init task you want to do goes here
}
最好在头文件和源文件中分别保留 class 成员的声明和定义,除非您正在处理模板参数。您可以通过以下方式单独保留成员初始化。
头文件
-----------------
class A {
public:
A(int x, float y );
private:
int _x;
float _y;
};
然后在源文件中,可以定义为,
A::A(int x, float y ) : _x(x), _y(y) {}
我的问题一定很简单,但我找不到正确的方法将带有初始化成员的构造函数拆分为 .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中有成员初始化和构造实现
Class::Class (int num, float fl ... ):_num(num),_fl(fl)
{
// whatevever other init task you want to do goes here
}
最好在头文件和源文件中分别保留 class 成员的声明和定义,除非您正在处理模板参数。您可以通过以下方式单独保留成员初始化。
头文件
-----------------
class A {
public:
A(int x, float y );
private:
int _x;
float _y;
};
然后在源文件中,可以定义为,
A::A(int x, float y ) : _x(x), _y(y) {}