是否可以在c ++中更改程序本身的代码?

时间:2014-09-21 09:16:49

标签: c++ c++11 private theory friend

关于去年,我做了Java(Android)编程,并在此之前完成了C#。大约一个月了,我正在学习C ++,自从我接过朋友,继承和其他东西后,我得到了一些问题,因为到目前为止我还没有使用过它:

以后有没有办法让班级定义朋友,因为他们需要交换信息或其他东西。例如有没有办法在以后定义“随机”朋友?那你需要什么?函数的名称或类的地址?

或者通常有一种方法可以从程序本身更改代码,因此无需重新编译?例如创建新的功能,类等?

对于任何有关此问题的答案,我都会感到非常高兴。

2 个答案:

答案 0 :(得分:2)

使用C ++无法实现您的目标。如果您需要那种动态更改程序,建议您使用更动态的高级语言,如Lisp。

friend只能通过修改源代码添加到类中。这是一个功能,而不是错误。

答案 1 :(得分:0)

有两种方法可以扩展这样的功能。

  1. 使用具有扩展功能的动态加载模块。这些模块提供特定的接口,可以与主程序分开编译。
  2. 添加脚本支持 - 允许用户添加编写脚本,并从程序内部运行它们。
  3. 第一种解决方案更容易,具体取决于您希望为这些脚本提供多少控制权。