c++ - 如何正确实例化一个类?

标签 c++ atl

我正在尝试在 ATL 中实现:

std::list<CMyClass> listMC;
CMyClass lmc;
listMC.insert(listMC.end(), lmc);

如何实例化 lmc,这是一个使用 Class View > New > Class 创建的 ATL 类?

我实际上在 lmc 上遇到错误:

Error: object of abstract class type "CProcessusModel" is not allowed :
function "CProcessusModel::AddRef" is a virtual function 
function "CProcessusModel::Release" is a virtual function  
function "CProcessusModel::QueryInterface" is a virtual function

非常感谢!

最佳答案

根据您的错误消息,CProcessusModel 类是抽象类。您不能实例化抽象类。

为了让你的类具体化,你必须

A) 在类CProcessusModel

中实现错误消息中列出的虚函数

B) 从抽象的 CProcessusModel 派生一个具体的子类,它实现所有纯虚方法并实例化该类型的对象。

关于c++ - 如何正确实例化一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406681/

相关文章:

c++ - 在 GPU 上调用函数时可以避免使用 __device__ 限定符吗?

c++ - C++ 中的全局字符串数组

c++ - 如何删除 ATL COM C++ 中的方法

c++ - 如何知道是否有人订阅了我要解雇的特定事件?

sql-server - SQL Server CE 3.5 更新行错误 DB_E_ERRORSOCCURRED 列错误是 DBSTATUS_E_SCHEMAVIOLATION

c++ - 为什么在 C++ 中,类的大小必须始终为用户所知?

c++ - C++ 中右移的未定义行为

multithreading - MSAA 不在主线程中产生新行为

c++ - 进程外 COM 单例

c++ - 使用多个 uint32_t 整数生成 uint64_t 哈希键