0

我正在开发一个具有一些全局变量的 CPP 项目,例如:

class A;
class B;
A a;
B b;

我希望可以选择在 a 和 b 的不同值之间切换。理想情况下,根本不应该有全局变量,或者它们应该是指针,以便我们可以轻松切换。例如,如果我们有:

B* b; A* a;

然后我们可以在运行时更改 a 和 b。但是,问题是变量 a 和 b 在项目中被调用了数百次,我必须将所有这些行从

a.something 

a->something

这可能需要一段时间。有没有更快的方法来做到这一点?

4

2 回答 2

0

取决于A的复杂程度......

#include <iostream>

struct A {
  virtual void print() { std::cout << "A\n"; }
};

struct D : public A {
  virtual void print() { std::cout << "D\n"; }
};

struct Ref {
  void set(A* obj) { o = obj; }
  void print() { o->print(); }
  A* o;
};

Ref a;

int main() {
  a.set(new A());
  a.print();
  // switch a
  a.set(new D());
  a.print();
}
于 2013-10-03T05:03:35.883 回答
0
# clean checkout from version control
find . -name *.c -exec perl -i -pe 's/\<a\.(\w+)/a->\1/g' \{} \; 
# review changes, fix the places the regex got wrong
于 2013-10-03T04:45:43.143 回答