【发布时间】:2019-11-18 21:44:38
【问题描述】:
我认为我可以这样做:
class TestA
{
private:
class Nested
{
};
};
class TestB
{
public:
friend class TestA;
friend class TestA::Nested;
};
但我得到一个错误:
错误 C2248 'TestA::Nested': 无法访问类中声明的私有类
有没有办法让私有嵌套类成为朋友?我该怎么做?
我在尝试在 MSVC 2017 (C++17) 中编译 MSVC 6 项目时遇到此错误。我想它当时有效。
【问题讨论】:
-
@TarickWelling No.
TestB并非源自TestA。 -
TestA需要将TestB声明为friend。TestB不能使用TestA::Nested,除非TestA允许。 -
TestA也应该是朋友,还是只是Nested?