【发布时间】:2017-11-13 13:55:15
【问题描述】:
定义
A::A()
try: B()
{}
catch(Exception e) {}
在这段代码中,我有 C2509 错误。 当我尝试转到头文件中的定义(F12)或定义中的(Ctrl + F12)时,它不起作用。
我试过了
A::A()
{
try
{ B();}
catch(Exception e) {}
}
但这是不可能的,因为在 B 类中有一个 pure virtual 函数。
我对两者之间的区别感到困惑
try: {}
catch
和
try{}
catch
【问题讨论】:
-
错误名称和快捷方式都不是 C++ 通用的。您需要在问题中逐字包含错误消息
-
我想你已经回答了你的问题:“这是不可能的,因为在 B 类中有一个纯虚函数。”你不能实例化一个抽象类——包括在初始化列表中。
-
@virgesmith 谢谢你的回答,但是为什么我可以在'try:'之后初始化抽象类,而不是在try {}中?
-
有没有办法编译成功?
-
@장윤지 为什么你认为在
try:之后你自己说你这样做有错误时可以初始化它?
标签: c++ compiler-errors try-catch