摘要: 先举一个在构造函数中调用virtual函数的例子: 1 class Base 2 { 3 public: 4 Base() 5 { 6 VirtualFunction(); 7 } 8 9 virtual void VirtualFunction()10 {11 cout << "In the Base Class" << endl;12 };13 };14 15 16 17 class Derived: p... 阅读全文
posted @ 2013-03-19 17:19 Jerry19880126 阅读(1116) 评论(0) 推荐(1) 编辑
摘要: 举书上的例子,有以下代码: 1 class Widget 2 { 3 public: 4 ~Widget(){…} // 析构函数 5 }; 6 7 void DoSomething() 8 { 9 vector<Widget> v;10 }STL的vector在析构时会逐一调用容器内每个元素的析构函数,这样问题就来了,万一在Widget的析构函数里出现了异常,又没有及时地在析构函数中处理这个异常,导致异常被抛出,因为vector中存在多个Widget元素,这样在析构时就会多次抛出未处理的异常,多个异常同时存在是非常危险的,它会导致不明确的行为。最好的解决... 阅读全文
posted @ 2013-03-19 10:45 Jerry19880126 阅读(891) 评论(0) 推荐(0) 编辑