gpt4 book ai didi

c++ - 在 C++ 基类构造函数中注入(inject)代码

转载 作者:行者123 更新时间:2023-11-30 00:41:21 24 4
gpt4 key购买 nike

我正在派生一个可从 C++ 库获得的类,只有当我在基类构造函数被调用之前执行一些代码时,我的子类的构造函数才会正常工作。 (是的,我知道,糟糕的设计,但我无法影响我正在使用的库的工作方式。)

如果基类构造函数带参数,这样做其实很简单:

struct A {
A(bool a) { printf("A::A()\n"); }
};

bool inject(bool a) { printf("inject()\n"); return a; }

struct B : public A {
B(bool a) : A(inject(a)) { printf("B::B()\n"); }
};

现在,当我构建 B 的实例时,inject()A::A() 之前被调用。但是,当基类 ctor 没有参数时,有没有办法做到这一点?

最佳答案

你有一个“Base from member initialization”的案例。

解决方案是 there .

关于c++ - 在 C++ 基类构造函数中注入(inject)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811151/

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