最近在用Qt写一个CT三维可视化的软件,需要在对话框类中访问主窗口类中成员函数与变量。主窗口中声明的成员变量和核心功能的成员函数均为私有成员,那么在对话框类中访问它们则可以使用包含但不仅限于(C++博大精深,不敢把话说满)以下的两种方法:
- 在主窗口类中创建公有成员函数,通过在类中获取私有成员来供其他类对其进行访问及修改:
class A{ public: int* getNum(){ return # } private: int num; } class B{ public: void setNum(int num){ *(a->getNum) = num; } private: A *a; }
- 在主窗口类中将对话框类声明为友元类(friend),当在对话框类中声明主窗口类对象后,即可直接访问该对象的所有成员(包括私有成员):
class A{ public: friend class B; private: int num; } class B{ public: void setNum(int num){ a->num = num; } private: A *a; }
当然也可以在主窗口类中修改成员的访问属性。