except28.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 39 行
C
39 行
#include "fail.h"
#include <string.h>
int count;
char *check_msg = "CCCC";
struct A {
virtual char *msg() const = 0;
protected:
A() : sig(++count) {
}
public:
A( A const &s ) : sig(s.sig) {
}
private:
int sig;
};
struct C : A {
char *msg() const {
return check_msg;
}
};
void test() {
throw C();
}
int main() {
try {
test();
} catch( A const &r ) {
if( r.msg() != check_msg ) fail(__LINE__);
if( strcmp( r.msg(), "CCCC" ) != 0 ) fail(__LINE__);
} catch( ... ) {
fail(__LINE__);
}
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?