好友和嵌套类
Friends and nested classes
好吧,我完全累坏了。代码开始在屏幕上游弋……一定要好好睡一觉。
如此!好吧,被嵌套类和好友困扰。
下面是伪代码 class A{
public:
//constructor
// member functions
private:
class B{
//private
int a();
};
class C{
//private
int b();
};
};
因此,一旦创建了A类型的对象,我希望它访问A()和b()。我知道我必须使用好友功能。那么我应该把class a放在哪里呢?这个表达式对吗?
如果您想从类A
中访问a()
和b()
,则需要将friend
声明放在类B
和类C
中。然而,a()
和b()
不是A
类的成员,所以你不能以你所想的方式访问它们。相反,您还需要将转发功能添加到A
。
class A
{
public:
//constructor
// member functions
private:
class B
{
//private
int a();
friend A; // <-- make A a friend
};
class C
{
//private
int b();
friend A; // <-- make A a friend
};
public:
// forwarding function for a
int a()
{
return bdata_.a();
}
// forwarding function for b
int b()
{
return cdata_.b();
}
private:
B bdata_;
C cdata_;
};
相关文章:
- 嵌套在类中时无法设置成员数据
- 无法访问嵌套类.类的使用无效
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 如何在C++中初始化嵌套类中的2个memeber
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 在C++中搜索嵌套多映射值
- 在C++中将矢量转换为嵌套地图
- C++嵌套if语句,基本货币交换
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 嵌套的匿名命名空间
- 了解嵌套循环打印星号图案
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 嵌套for循环C++的问题(初学者)
- MSVC 2017 - 错误 - 如何将模板类 X 的模板成员函数声明为嵌套类 X::Y 的好友
- C++:不能使运算符<<成为模板嵌套类的好友
- 声明嵌套基模板类实例是派生类的好友
- 嵌套类的类内好友是否可以访问外部类成员?
- 访问专用模板中嵌套好友类的私有成员
- 好友和嵌套类
- 使方法成为嵌套命名空间中的好友