gpt4 book ai didi

c++ - 模板类中嵌套类的问题

转载 作者:太空狗 更新时间:2023-10-29 23:04:48 26 4
gpt4 key购买 nike

<分区>

我试图在模板类中使用嵌套类。请参阅下面的代码片段:

template <class T>
class OutterTemplate {
public:
class InnerBase {
protected:
const char* name_;
public:
virtual void print() {
cout << name_ << endl;
}

void setName(const char* n) {
name_ = n;
}
};

private:
class Inner : public InnerBase {
public:
virtual void print() {
cout << name_;
cout << " and ";
InnerBase::print();
}
};
public:
static InnerBase* getInner() {
return new Inner();
}
};

int main() {
auto q = OutterTemplate<int>::getInner();
q->setName("Not working");
q->print();
}

尝试编译此代码时出现错误“错误:‘name_’未在此范围内声明”。我检查了“outter”是否不是模板类,没有这个问题。谁能解释为什么模板类会出现此错误,以及如何在模板类内嵌套类的情况下启用对基类成员的访问?

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