gpt4 book ai didi

C++ 将隐藏的 arg 传递给类构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:14:28 24 4
gpt4 key购买 nike

我想定义一个类,它接受指向它的父类的指针作为参数,但是是否可以以某种方式传递它而不需要直接传递它,例如:

class Child
{
public:
Child(Parent* hiddenArg);
};

class Parent
{
public:
Child myChild;
};

我知道这很奇怪,但我正在制作自己的信号/插槽实现,而子级将是一个定义的信号,但我想获得父级以便我可以使用它的事件调度程序...

最佳答案

你不能自动完成它,但你需要做的就是在 Parent 构造函数中构造 myChild,如下所示:

Parent::Parent()
: myChild(this) // passing pointer to parent to child constructor
{
}

请注意,某些编译器会针对该代码发出警告:它认为您在父类完全构造之前使用了 this 指针。只要您只存储 Child 构造函数中的指针并且不使用它,就可以了。您可能合法地想要禁用警告(尽量不要在整个项目范围内禁用警告 - 只是在受影响的区域周围)。

关于C++ 将隐藏的 arg 传递给类构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com