c++类的友元函数可以访问该类的内嵌类么?

如题。
好像我编译通过不了,内嵌类是私有成员。
好吧随便打几个字凑足30字

2个回答

我问题已解决,常理来说类的友元是可以访问类的私有成员的,但是因为我友元函数是在类外面实现的,当在友元函数内定义该内嵌类的变量时,要在前面加上名称空间限制,比如类为bba,内嵌类为aab,则定义aab类型的变量c要这样:
bba::aab c;
还有就是不要乱用名称空间,namespace能不用就不用,会有干扰很麻烦。
有错误请指正。

  1. 如果内部类是public的,那么函数不用成为类的友元函数,就可以创建内部类的对象
  2. 如果内部类是private的, 那么函数一定要是类的友元函数,跟其他的私有成员的访问控制是一样的
  3. 如果函数要访问内部类的私有成员,那么一定要在内部类中声明该函数为内部类的友元函数,因为友元函数的声明只针对当前的类,并不会传递或者继承
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!