c++ - 不允许成员函数重新声明

标签 c++ compiler-errors

如果我在 mainwindow.cpp 中定义该函数,该函数可以正常工作,但是当我在 radiobuttons.cpp 中定义它并尝试从 mainwindow.cpp 中调用它时,该项目将无法编译。

主窗口.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H        
    #include <QMainWindow>

    namespace Ui {
    class MainWindow;
    }

    class MainWindow : public QMainWindow
    {
        Q_OBJECT

        public:
            explicit MainWindow(QWidget *parent = 0);

            void build_radios();  //this function

            ~MainWindow();

    };    
#endif // MAINWINDOW_H

单选按钮.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

    void MainWindow::build_radios()
     {  

    //... some code

     }

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

void MainWindow::radio_buttons();   //error: C2761: 'void MainWindow::build_radios(void)' : member function redeclaration not allowed

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

{

radio_buttons();

}

最佳答案

那不是定义,编译器将其视为类定义之外的成员函数声明,这是非法的。只需删除该行。它本来就不应该存在,它没有用。

事实上,将实际定义从 radiobuttons.cpp 移至 mainwindow.cpp 以保持一致性。为什么要在不同的实现文件中声明一个 MainWindow 成员?

关于c++ - 不允许成员函数重新声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095405/

相关文章:

java - 为什么这个通用接口(interface)实现无法编译?

c++ - 如何自动导出 C++ 源中的名称以在 DLL 中使用

java - 垃圾收集器是否在从 C++ 创建的 JVM 中运行?

图像文件的C++ ifstream

C++:哪个弱原子用于接收异步的缓冲区。 RDMA 传输?

java - 这段代码有什么问题? Netbeans 不编译代码

c++ - 为什么 "std::string(blablabla());"编译没有错误?

java - 如何解决无法在Java oop中找到或加载主类?

kotlin - 类型不匹配Kotlin和getStringArrayListExtra

c++ - 在连续的内存位置存储字符串文字