gpt4 book ai didi

c++ - gcc编译错误: member of nested class A in template class Table is not visible in nested friend class. 为什么?

转载 作者:行者123 更新时间:2023-11-30 05:48:42 27 4
gpt4 key购买 nike

我试图在 Windows XP 上用 mingw32 编译一些代码,但出现错误。因此,我编写了该代码的简化版本并得到了同样的错误。在这里:

template <class T>
class Table
{
public:

class A
{
private:
int nEntry;
friend class B;
};

class B : public A
{
public:
void Remove()
{
nEntry = 1;
}
};
};

编译器错误信息:

E:\cbProjects\projects\1\main.cpp||In member function 'void Table<T>::B::Remove()':|
E:\cbProjects\projects\1\main.cpp|24|error: 'nEntry' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|

我在哪里可以阅读这些项目,为什么会这样? (链接将很有用 - 可能会出现其他一些类似的错误或编译器包)

最佳答案

在模板中,成员访问有时必须在显式 this-> 之前,如本例所示。您可以让您的代码以这种方式工作:

this->nEntry = 1;

关于c++ - gcc编译错误: member of nested class A in template class Table is not visible in nested friend class. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28104449/

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