如何编写既有throw又有成员初始化列表的ctor定义? 它是否正确?
ClassName::ClassName(int parameter): datamember_(parameter) throw(ExceptionType)
答案 0 :(得分:5)
throw
是函数声明符的一部分,因此它应该出现在初始化列表(:
)之前。
ClassName::ClassName(int parameter) throw(ExceptionType) : datamember_(parameter) {
BTW,C ++ 0x中的异常规范是deprecated,除throw()
外,它通常是无用的。请参阅Should I use an exception specifier in C++?。