C2512 错误是指定一个类没有对应的构造函数,一般情况下这种错误容易发现,但在一种特殊情况下,就不好发现了
比如如下
class Base
{
public:
Base(int n){} ///Base 有一个带一个参数的构造函数
};
class Derive : public Base
{
public:
Derive(void){} ///Derive 不能完成 Base 构造函数的调用
};
上面的错误虽然不好发现,但终究是自己的代码,还好排除,
但使用 COM 时,我们常用一个模板 CComObject,如下
CComObject<Base>
因为 CComObject 继承于 Base,但 CComObject 有一个无参数的构造函数,而 Base 是自己写的类,他的构造函数
有一个参数,这样就出现编译错误了,还不容易找,以后在类内成员上也要注意这样的问题
C2512
最新推荐文章于 2022-06-02 13:37:54 发布