无法从 .cpp 访问 .h 中声明的私有成员
Can't access private member declared in .h from .cpp
我在controller.h中声明了一个私有变量MainWindow mainWindow;
但是我不能从controller.cpp
controller.h
#ifndef CONTROLLER_H
#define CONTROLLER_H
#include <QMainWindow>
#include "event_manager.h"
#include "event_wrapper.h"
#include "event_list_viewer.h"
#include "main_window.h"
class Controller
{
public:
Controller();
~Controller();
static Controller &GetInstance();
MainWindow *SetupMainWindow();
private:
MainWindow mainWindow;
};
#endif // CONTROLLER_H
controller.cpp
#include "controller.h"
Controller::Controller() {}
Controller::~Controller() {}
Controller& Controller::GetInstance()
{
static Controller instance;
return instance;
}
MainWindow* SetupMainWindow()
{
bbque::EventManager *manager = &bbque::EventManager::GetInstance();
bbque::EventWrapper *wrapper = manager->Deserialize(); //get wrapper via manager
EventListViewer eventViewer;
wrapper->setParent(&eventViewer);
eventViewer = EventListViewer(wrapper, mainWindow); //cannot access mainWindow variable
return new MainWindow(eventViewer);
}
为什么?
因为MainWindow* SetupMainWindow()
是一个全局/独立函数,而不是您的Controller
类的成员。必须在controller.cpp.
MainWindow* Controller::SetupMainWindow()
。
相关文章:
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 如何使用模板声明成员函数?(不是模板类)
- 如何使用 Boost.Hana 声明成员变量
- 声明成员对象而不调用其默认构造函数
- 使用函数类型语法声明成员函数
- 尝试访问标头声明成员时出现隔离错误
- 根据二手构造函数声明成员
- C 模板明确声明成员函数值/避免了宏的问题
- 如何在基本模板类中声明成员,其中类型取决于派生类的类型
- 错误:类中没有声明成员函数
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 从variadic模板参数声明成员变量
- 在类(C )中使用模板时未声明成员函数
- 错误:类中未声明 '' 成员函数
- 如何在指向常量地址时声明成员函数常量指针
- 何时以及为什么在堆C++上声明成员变量
- C++ 错误:未在范围内声明;成员函数
- 在不声明成员变量的情况下更改按钮颜色
- 错误 C2535:已定义或声明成员函数
- 当声明成员函数时,*New()是什么意思