![]() |
1
1
没有复制构造函数和赋值运算符,
在编辑中,定义了缺少的元素。复制构造函数的问题在于它什么都不做。不幸的是
对于复制构造函数,假设您保证p\u B始终指向有效的B对象,并且假设没有切片风险:
如果您认为不需要复制构造函数或赋值运算符,为了确保遵守规则3,您也可以将它们声明为已删除:
如果您的代码不小心使用了它们,编译器会抱怨,而不是生成代码和上述问题。 最后,在init函数中实例化。但对于您的很短的代码片段,它似乎是此函数的本地对象。所以一旦你离开这个函数,它就会被破坏。 |
![]() |
2
1
我确信这个问题不是源于代码,而是源于项目配置属性。当/MD与\u DEBUG配对时,似乎会出现此错误。然而,当一个项目被纳入发布版本时,不应该定义调试,而应该定义NDEBUG。一旦我将预处理器定义从\u DEBUG更改为NDEBUG,断言失败就不再出现了。 值得注意的是,在使用/MDd和\u DEBUG时,项目执行没有问题。 |
![]() |
Nicola · C++CLI项目中非托管数据上的C#指针 7 年前 |
![]() |
Anton Savelyev · 在发布版本中删除类指针会导致内存问题 7 年前 |
![]() |
shmnff · 显式转换int到SqlInt32 7 年前 |
![]() |
Alex12 · windows窗体中的C++if语句[关闭] 7 年前 |
![]() |
Claude Tan · 类型定义和类型引用之间有什么区别? 7 年前 |