gpt4 book ai didi

c++ - 类可以在运行时在 C++ 中添加友元类吗?

转载 作者:行者123 更新时间:2023-11-30 01:35:50 25 4
gpt4 key购买 nike

我想让一些类在运行时成为其他类的 friend 。有办法做到这一点吗?

或者,有没有办法在运行时访问对象的公共(public)/ protected /私有(private) ivars - 或者扩展类似于 Objective-C 类别功能的类?

这里的用例是我希望能够在运行时为测试套件提供对类中 ivar 的访问权限,但又不会用测试套件特定代码污染应用程序代码。测试框架可能会发生变化,并且会因部署平台而异。

总结:找到一种方法来保持应用程序代码干净,并且不受外部框架工件的影响。

最佳答案

I'd like to make some classes become friends of other classes at runtime. Is there a way to do this?

不,这在 C++ 中是不可能的。

Alternatively, is there a way to access an object's public/protected/private ivars at runtime

也没有在运行时更改类成员可见性的概念。

访问修饰符是纯粹的编译时概念,无法在运行时更改它。


为您的特定用例克服此问题的一种方法可能是使用接口(interface),正如我在这里勾画的那样:

关于c++ - 类可以在运行时在 C++ 中添加友元类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53109742/

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