谁能帮我理解,为什么我可以在两个不同的编译单元中使用相同的类而不会出现链接器错误,但在不同的编译单元中却不能使用相同的函数?
非常感谢。
最佳答案
由于其方法(包括特殊成员,如默认 ctor 或 operator=)具有相同名称的一个定义错误,两个组合单元中的同一类可能会导致程序格式错误。
我的特殊成员函数是隐式内联定义的,所以我们很容易得到不需要诊断的格式错误的程序。
因此我的内存损坏了;两个具有相同名称和不同内存布局的矩阵类。
关于c++ - 编译器和链接器如何处理类和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47377600/