browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

大徐出的笔试题

Posted by on 2005 年 11 月 02 日

你可以任意转载本文,但请在转载后的文章中注明作者和原始链接。
媒体约稿请联系 titilima_AT_163.com(把“_AT_”换成“@”)。

> 下面哪个声明了一个指向字符串数组的指针
> A.std::string(*pas)[5];
pas是一个指针,它指向了一个std::string[5]
> B.std::string *pas[5];
pas是一个数组,它里面有五个成员,每个成员的类型是std::string

> 2)与
> typedef Object *Handle;
> const Handle x=0;
Handle是指向Object的指针类型,x本身为常量

> 等价的是:
> A. Object *const x=0;
同上
> B. const Object *x=0;
x不是常量,x指向的内容是常量

> 3)虚析构函数有什么好处?
参考以下代码:

C++代码
  1. #include <iostream>   
  2. using namespace std;   
  3.   
  4. class A   
  5. {   
  6. public:   
  7.     A(){}   
  8.     virtual ~A(){}   
  9. };   
  10.   
  11. class B : public A   
  12. {   
  13.     int* m_data;   
  14. public:   
  15.     B()   
  16.     {   
  17.         m_data = new int[10];   
  18.         cout << "Memory is allocated." << endl;   
  19.     }   
  20.     ~B()   
  21.     {   
  22.         delete[] m_data;   
  23.         cout << "Memory is freed." << endl;   
  24.     }   
  25. };   
  26.   
  27. int main()   
  28. {   
  29.     A* pa = new B;   
  30.     delete pa;   
  31.     return 0;   
  32. }  

如果没有虚析构函数,那么就会造成内存泄露。

订阅本站

没有评论

(Required)
(Required, will not be published)