碰到了和stackoverflow上类似的问题,stackoverflow上的这个问题。其中第2个复杂的程序,如何修改才能够使它报出和第1个简单的程序类似的错误?
碰到了和stackoverflow上类似的问题,stackoverflow上的这个问题。其中第2个复杂的程序,如何修改才能够使它报出和第1个简单的程序类似的错误?
3 回答1.4k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答908 阅读
1 回答976 阅读
1 回答1k 阅读
1 回答768 阅读
1 回答870 阅读
对于第一个错误,应该是很清晰的,在头文件里面定义了静态变量,所以在多次 include 的时候导致了重复定义。
至于说为什么第2个复杂的程序不报错,这里涉及到了一个相对比较小众的 C++模板的特性——编译器保证具有相同模板参数的模板只实例化一次。也就是说,具有相同模板参数的 class 中的静态变量只被实例化一次。所以第二个例子可以编译通过。
至于说让第2个程序报类似的错误,你只要不用模板就会有类似的错误。