C++编译时遇到multiple definition问题,可以把被多次定义的代码部分放在一个匿名命名空间(namespace)中,如:

namespace {
class A {
...
};
...
}