在 Qt 中,可以使用以下几种方式在一个 cpp 文件中调用另一个 cpp 文件中定义的函数:

  1. 包含头文件:在需要调用其他 cpp 文件中定义的函数的 cpp 文件中,使用 #include 指令包含另一个 cpp 文件的头文件。然后可以直接调用该 cpp 文件中定义的函数。
// file1.cpp
#include 'file2.h'

void function1()
{
    function2(); // 调用 file2.cpp 中定义的函数
}
// file2.h
#ifndef FILE2_H
#define FILE2_H

void function2();

#endif
// file2.cpp
#include 'file2.h'

void function2()
{
    // 函数定义
}
  1. 使用 extern 关键字:在需要调用其他 cpp 文件中定义的函数的 cpp 文件中,使用 extern 关键字声明另一个 cpp 文件中的函数。然后可以直接调用该 cpp 文件中声明的函数。
// file1.cpp
extern void function2();

void function1()
{
    function2(); // 调用 file2.cpp 中定义的函数
}
// file2.cpp
void function2()
{
    // 函数定义
}
  1. 使用 Qt 的信号与槽机制:在需要调用其他 cpp 文件中定义的函数的 cpp 文件中,将该 cpp 文件中定义的函数作为槽函数,然后使用信号与槽机制进行调用。
// file1.cpp
#include 'file2.h'

void function1()
{
    File2Class file2Object;
    connect(this, SIGNAL(callFunction2()), &file2Object, SLOT(function2()));
    emit callFunction2(); // 调用 file2.cpp 中定义的函数
}
// file2.h
#ifndef FILE2_H
#define FILE2_H

#include <QObject>

class File2Class : public QObject
{
    Q_OBJECT

public slots:
    void function2();
};

#endif
// file2.cpp
#include 'file2.h'

void File2Class::function2()
{
    // 函数定义
}

需要注意的是,在使用信号与槽机制进行函数调用时,被调用的函数需要定义在 QObject 的子类中,并且该类需要使用 Q_OBJECT 宏进行声明。

Qt 中如何在 C++ 文件之间调用函数

原文地址: https://www.cveoy.top/t/topic/fyyc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录