如何诱出bad_typeid呀

C、C++和Java语言
回复
Seashore
帖子: 5
注册时间: 2006-08-02 12:06
来自: 广东汕头
送出感谢: 0
接收感谢: 0
联系:

如何诱出bad_typeid呀

#1

帖子 Seashore » 2006-08-03 23:40

I have tried these codes:
1\cout<<typeid(0).name()<<endl; result: int

2\int* p=0;
cout<<typeid(*p).name()<<endl; result:int
3\int* p;
cout<<typeid(*p).name()<<endl; result:int
4\int* fun(){
int* p;
return p;
}
cout<<typeid(*fun()).name()<<endl;result:int(虽然编译时有warning,但仍可通过)

5\void fun(){
cout<<"haha"<<endl;
}

cout<<typeid(fun()).name()<<endl; result:void
问题时,什么时候,才会不合法,抛出一个bad_typeid
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 ectotherm » 2006-08-04 8:05

:o 除非你的编译器有问题,你咋就不能干点实质性的东西呢?
Seashore
帖子: 5
注册时间: 2006-08-02 12:06
来自: 广东汕头
送出感谢: 0
接收感谢: 0
联系:

天下大事必作于细,细节决定成败,哀........

#3

帖子 Seashore » 2006-08-04 21:37

我已经解决了这个问题:if pointer P points to built-in type,and if p==0,typeid(*p) is OK,but if a pointer p points to user-defined type,it will throw a bad_typedid.
回复

回到 “C/C++/Java”