摘要:
9.不在构造、析构函数中调用虚函数 1.在构造函数和析构函数中调用虚函数会产生什么结果呢? #include using namespace std; class cls1{ public: cls1(){ newMake(); }; ~cls1(){ deleteIt(); }; virtual void newMake(... 阅读全文
posted @ 2015-03-29 18:52
SkyFireITDIY
阅读(230)
评论(0)
推荐(0)
摘要:
1.为何析构函数不应该抛出异常? 有两种情况: 1).假设析构函数中有众多语句,而第一条语句抛出异常(或者其他语句),那么抛出异常以后的语句就得不到执行。而通常我们在析构函数中写的是清理资源(或回收资源)的代码,那么部分资源就不会被回收,会造成内存泄漏或程序提前结束(abort的作用)。 2).析构函数被调用的时间是在对象被销毁时,而我们很难知道(或者说没有刻意注意)对象何时被销... 阅读全文
posted @ 2015-03-29 18:51
SkyFireITDIY
阅读(146)
评论(0)
推荐(0)
摘要:
7.为多态基类声明虚析构函数 1.为多态基类声明虚析构函数 code1: class A{ public: int* a; A():a(new int(5)) {} ~A(){ delete a; } }; class B:public A { public: int *b; B():b(new int(10)) {... 阅读全文
posted @ 2015-03-29 18:49
SkyFireITDIY
阅读(169)
评论(0)
推荐(0)
摘要:
6.若不想使用编译器默认生成的函数,就该明确拒绝 1.有的时候不希望对象被复制和赋值,那么就把复制构造函数与赋值运算符放在private:中,但是这两个函数是否需要实现呢?假设实现了,那么你的类成员方法和friend函数(类)仍然可以使用这些方法,最好的方法是在private:中声明儿不定义他们,这样当成员方法或friend:函数(类)企图调用这些方法的时候,会报出链接错误,因为方法没有被实现。(... 阅读全文
posted @ 2015-03-29 18:45
SkyFireITDIY
阅读(188)
评论(0)
推荐(0)
摘要:
5.了解C++默默编写并调用哪些函数 1.C++空类 C++会为一个空类建立以下函数 (1).默认构造函数 (2).默认拷贝构造函数 (3).析构函数 (4).赋值运算符(如果成员包含... 阅读全文
posted @ 2015-03-29 18:42
SkyFireITDIY
阅读(201)
评论(0)
推荐(0)

浙公网安备 33010602011771号