在C++各个不同的编译模块中,编译器如何避免合成出多个default constructor(比如说一个是为A.C文件合成,另一个是为B.C文件合成)呢?
解决方法是把合成的default constructor、copy constructor、destructor、assignment copy operator都以inline方式完成。一个inline函数有静态链接是(static linkage),不不会被文件以外者看到。如果函数太复杂,不适合做成inline,就会合成出一个explicit non-inline static 实例。