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) {}