读书人

错误关于函数级try块

发布时间: 2012-02-10 21:27:41 作者: rapoo

异常——关于函数级try块
为什么下列程序无法编译成功
#include <iostream>
using namespace std;

class err{};

class err_dri{
const char *msg;
public:
err_dri(const char *m) : msg(m){}
const char* what(){return msg;}
};

class Basic{
int i;
public:
Basic(int j) : i(j){ throw err();}
};

class Drived : public Basic{
public:
Drived(int j) try : Basic(j){
cout < < "---------- " < < endl;
}catch(err&){
cout < < "BasicExcept " < <endl;
throw err_dri( "except ");
}
};

void main(){
try{
Drived a(9);
}catch(err_dri& sd){
cout < <sd.what() < <endl;
}
}



[解决办法]
CC: Sun WorkShop 6 update 2 C++ 5.3 2001/05/15
no problem.
[解决办法]
vc2005可以。
[解决办法]
更换支持最新标准的编译器 ~

比如可以使用 Dev C++,
注意 main 的返回必须是 int 类型的 ~

读书人网 >C++

热点推荐