我正在尝试使用必须初始化的const成员创建基类和派生类:
class baseClan
{
public:
baseClan(const string firstName)
:
fullName(createFullName(firstName))
{}
private:
const string lastName = "Smith";
const string fullName;
virtual const string createFullName(string firstName) { return firstName + " " + lastName ; }
}
我如何实现派生类,以便它可以使用不同实现的createFullName?我在看这个链接https://isocpp.org/wiki/faq/strange-inheritance#calling-virtuals-from-ctor-idiom但是,似乎我陷入了困境和困境:它提出的第一种方法(使用init)不适用于初始化列表;而在第二种方法中,明确指出它无法处理需要访问在Derived中声明的实例数据的情况。