我有这段代码用于在 C++ 中调用父初始化程序。
#include <iostream>
using namespace std;
class A
{
public:
A(const string& a) {}
};
class B : public A
{
public:
B(const string& b) : A(b) {}
};
我想我可以用这样的父初始化器来装饰一点。
B(const string& b) : A(b + "!!") {}
那么,当我需要一些决策逻辑来设置父初始值设定项时呢?我试过这个,但我收到错误消息。
B(const string& b) {
if (...) {
A(b + "x");
} else {
A(b + "y");
}
}
>> ERROR
hier.cpp: In constructor 'B::B(const string&)':
hier.cpp:16:2: error: no matching function for call to 'A::A()'