主函数是否可以成为类的朋友?

Sri*_*ini 7 c++

我知道这对数据隐藏是有害的,但理论上这是允许的吗?

SLa*_*aks 6

当然.

main 是一个几乎完全普通的功能.

  • `main`不是*完全*普通.例如,它可能无法从代码中的任何位置调用. (8认同)
  • 不仅"main"不能从任何地方调用,它也不能被重载. (3认同)
  • 朋友声明的副作用是,作为声明.也就是说,他们确实声明了你在封闭范围(或完全限定的范围)中成为朋友的功能,所以我认为这可能有问题.另一方面,我已经重新检查了标准,禁止的是*定义*多个`main`函数(没有提到声明),所以它似乎没问题.无论如何,你必须与可能在使用你的类的程序中使用的`main`的所有变体成为朋友:`int main()`,`int main(int,char**)`,`int main(int ,char**,char**)` (3认同)