c++ - 多个文件中的类实现

标签 c++

我正在尝试在不同的 cpp 文件中实现一个类。我知道如果成员函数是独立的,那么在 C++ 中这样做是合法的。然而,其中一个成员函数使用另一个成员函数,例如在这种情况下:

在function1.cpp中

#include "myclass.h"
void myclass::function1()
{ 
    function2();
}

在function2.cpp中

#include "myclass.h"
void myclass::function2()
{
....
}

我会得到一个未定义的对 function2 的引用的错误。添加这个指针也不起作用。我需要在function1.cpp中以某种方式声明它吗?谢谢~

头文件包含两个函数的声明。它在函数 1 和函数 2 在同一个文件中时有效,但在我将它们分开时无效。我也相信我已经在项目中添加了两个 cpp。顺便说一句,我正在使用 Qt 创建器。

最佳答案

只要 myclass.h 包含类的定义和成员函数的声明,就可以了。示例:

//MyClass.h
#ifndef XXXXXXXX
#define XXXXXXXX
class MyClass
{
  public:
   void f1();
   void f2();
};
#endif

//MyClass1.cpp
#include "MyClass.h"
void MyClass::f1()
{
};

//MyClass2.cpp
#include "MyClass.h"
void MyClass::f2()
{
     f1(); //OK
}

关于c++ - 多个文件中的类实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6939890/

相关文章:

c++ - 将 unsigned int 更改为 size_t 会影响性能吗?

c++ - 在 CUDA 中循环遍历 3 维数组以求和它们的元素

c++ - 在堆栈上取消引用变量或最近取消引用的成本?

c++ - 如何在 Xcode C++ 控制台应用程序中使用 dlib

c++动态分配指针指向的类的拷贝

c++ - 命名空间和类中的可变参数模板函数

c++ - 扩展单例模式以允许多个实例

c++ - 如何使用 cpprest 遍历 json 对象

c++ - 是否仅在创建类的对象时才调用构造函数?

c++ - DirectX11 : Translating along z axis causes vertex deformation