c ++中的代码组织

时间:2012-08-30 05:30:04

标签: c++

我有一个跨越两个文件的类。它在 declare.h 文件中声明,并在 define.cpp 文件中定义。

define.h

class A{
    public: int a;
            void func(){ a = some_other_func(); }
             A();
};

define.cpp

A::A(){
    a =0;
}

总体思路是在构造函数中初始化变量,然后在内联函数中使用它。但构造函数定义和函数定义位于不同的文件中。这有什么问题吗?

3 个答案:

答案 0 :(得分:0)

您需要在#include "declare.h"define.cpp,然后将构造函数编写为A::A() : a(0){}

答案 1 :(得分:0)

声明/定义分离绝对没有问题,只要declare.h中包含define.cpp。但usulal实践是实现文件与声明文件同名,禁止后缀。因此,您的案例可以是A.hA.cpp

但是,成员变量a本身的初始化存在问题。您可能希望在构造函数初始化列表中初始化 int a

A::A() : a(0) {}

在您的代码中,根本没有初始化。您正在构造函数体中创建并初始化名为a局部变量的局部变量。大概这不是你想要的。

答案 2 :(得分:0)

虽然一般来说这不是技术问题。您应该采用.h文件是代码接口的约定,因此它们应该只有其他代码可以调用您的代码所需的内容。