Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在基类派生(子)类对象中获取基类指针(父类)?_C++ - Fatal编程技术网

C++ 在基类派生(子)类对象中获取基类指针(父类)?

C++ 在基类派生(子)类对象中获取基类指针(父类)?,c++,C++,所以我有一个类(父类),它创建了一个对话框并用控件填充它。该类中还有另一个类(子类),它创建一个计时器,该计时器链接/传递一个函数调用到事件系统,以定期更新某些控件的内容。问题来自计时器更新函数,它需要知道需要更新的对象 我想简单地将基类的指针传递给子类,以一种完全自包含的方式。但我想不出一个办法来实现这一点。有人有什么想法吗 我已经搜索了答案,但我得到的只是从基类内部从子类内部访问变量。这会起作用,但似乎没有必要为每个控件触发事件。。。(我想我可以在一个结构中创建所有控件,但这似乎是不必要的)

所以我有一个类(父类),它创建了一个对话框并用控件填充它。该类中还有另一个类(子类),它创建一个计时器,该计时器链接/传递一个函数调用到事件系统,以定期更新某些控件的内容。问题来自计时器更新函数,它需要知道需要更新的对象

我想简单地将基类的指针传递给子类,以一种完全自包含的方式。但我想不出一个办法来实现这一点。有人有什么想法吗

我已经搜索了答案,但我得到的只是从基类内部从子类内部访问变量。这会起作用,但似乎没有必要为每个控件触发事件。。。(我想我可以在一个结构中创建所有控件,但这似乎是不必要的)

嵌套类看起来有点像这样:

class CreateDialog{
    class timer{
    }
}

您可以尝试在父类中声明一个静态成员变量,并将其设置为父类构造函数中父类的指针。

“该类中有另一个类(子类)”您在这里是指继承还是组合?如果没有至少一些伪代码,您的问题会令人困惑。我为您添加了一个代码结构的快速示例。啊,所以是一个嵌套类。。这里没有家长或孩子。:-]为什么不让
timer
拿一个指针或引用到它所拥有的
CreateDialog
?我希望能在内部做到整洁。事实上
timer
CreateDialog
中只会改变
timer
的范围——它不会神奇地给
timer
任何不寻常的访问权限
CreateDialog
,尤其是对于
CreateDialog
的某个实例,这听起来像是在自找麻烦。如果类有多个实例,会发生什么情况?这实际上可能会起作用,因为指针变量将存储在创建的每个基类中。。。我试试看。