C++ 在基类派生(子)类对象中获取基类指针(父类)?
所以我有一个类(父类),它创建了一个对话框并用控件填充它。该类中还有另一个类(子类),它创建一个计时器,该计时器链接/传递一个函数调用到事件系统,以定期更新某些控件的内容。问题来自计时器更新函数,它需要知道需要更新的对象 我想简单地将基类的指针传递给子类,以一种完全自包含的方式。但我想不出一个办法来实现这一点。有人有什么想法吗 我已经搜索了答案,但我得到的只是从基类内部从子类内部访问变量。这会起作用,但似乎没有必要为每个控件触发事件。。。(我想我可以在一个结构中创建所有控件,但这似乎是不必要的) 嵌套类看起来有点像这样:C++ 在基类派生(子)类对象中获取基类指针(父类)?,c++,C++,所以我有一个类(父类),它创建了一个对话框并用控件填充它。该类中还有另一个类(子类),它创建一个计时器,该计时器链接/传递一个函数调用到事件系统,以定期更新某些控件的内容。问题来自计时器更新函数,它需要知道需要更新的对象 我想简单地将基类的指针传递给子类,以一种完全自包含的方式。但我想不出一个办法来实现这一点。有人有什么想法吗 我已经搜索了答案,但我得到的只是从基类内部从子类内部访问变量。这会起作用,但似乎没有必要为每个控件触发事件。。。(我想我可以在一个结构中创建所有控件,但这似乎是不必要的)
class CreateDialog{
class timer{
}
}
您可以尝试在父类中声明一个静态成员变量,并将其设置为父类构造函数中父类的指针。“该类中有另一个类(子类)”您在这里是指继承还是组合?如果没有至少一些伪代码,您的问题会令人困惑。我为您添加了一个代码结构的快速示例。啊,所以是一个嵌套类。。这里没有家长或孩子。:-]为什么不让
timer
拿一个指针或引用到它所拥有的CreateDialog
?我希望能在内部做到整洁。事实上timer
在CreateDialog
中只会改变timer
的范围——它不会神奇地给timer
任何不寻常的访问权限CreateDialog
,尤其是对于CreateDialog
的某个实例,这听起来像是在自找麻烦。如果类有多个实例,会发生什么情况?这实际上可能会起作用,因为指针变量将存储在创建的每个基类中。。。我试试看。