小编Tai*_*and的帖子

如何在运行时更改方法的行为?

精简版:

要点是实例的(复杂)状态可以被类定义之外的函数改变,因此类可以扩展为具有各种内部状态,而不会用许多状态污染类定义 -二传手。

假设以下代码:

 class bar
 {
      virtual void ChangeState()=0;
 }
 class foo:bar
 {
 private:
      int b;
 public:
      void ChangeState() {b=3;}
 }
Run Code Online (Sandbox Code Playgroud)

我想做的是创建不同的函数,然后在运行时将它们传递给函数,例如

foo.ChangeState(); //b is 3 now
void foo::(?)ChangeState2(){ b=2; };
foo.ChangeState=ChangeState2;
foo.ChangeState(); //b is 2 now
Run Code Online (Sandbox Code Playgroud)

可以在 C++ 中实现这样的构造,而不使用 hacks 吗?

c++ function-pointers

5
推荐指数
1
解决办法
1573
查看次数

库通常带有头文件吗?

我目前正在制作一个可重用代码的小型库,这个代码已经被证明是有用的,并且我想知道库通常是如何部署的?我的印象是.dll和.lib就足够了,但是,我如何引用类和函数?图书馆是否也常常附带大量的.h文件或者有更优雅的解决方案?

如何部署使用该库的实际应用程序?一旦静态链接,我还需要发送.dll文件或库中的内容是否被复制到程序中?

c++ windows dll visual-studio

4
推荐指数
2
解决办法
1215
查看次数

标签 统计

c++ ×2

dll ×1

function-pointers ×1

visual-studio ×1

windows ×1