摘要:
2.3.1引用 在C++11标准中,增加了一个右值引用,稍微高级的东西,以后会更新。 一般来说引用都是说的左值引用。 这里就有一个问题,什么是左值,什么是右值。 简单一句话:左值长久,右值短暂 引用其实就是给对象起了另一个名字。 如: int ival = 0; int &refVal = val; 阅读全文
posted @ 2017-10-01 15:56
CoderZSL
阅读(122)
评论(0)
推荐(0)
摘要:
在构造函数中调用virtual函数时,base class构造期间virtual函数是不会下降到derived class层 如: class Transaction{ public: Transaction(); virtual void logTransaction() const = 0; } 阅读全文
posted @ 2017-10-01 15:06
CoderZSL
阅读(142)
评论(0)
推荐(0)
摘要:
例如: class Widget { public: ~Widget(){...} }; void doSomething() { vector<Widget>v; } 如果v中有10个Widget,销毁第一个时发生析构函数抛出异常,销毁第二个时析构函数又抛出异常,那么两个异常同时存在的情况下:程序 阅读全文
posted @ 2017-10-01 15:05
CoderZSL
阅读(138)
评论(0)
推荐(0)
摘要:
1.假设有如下时间类: class TimeKeeper { public: TimeKeeper(); ~TimeKeeper(); }; class AtomicClock :public TimeKeeper {}; factory函数(用户只是想调用时间,而不想操心时间如何计算等细节):Ti 阅读全文
posted @ 2017-10-01 15:01
CoderZSL
阅读(141)
评论(0)
推荐(0)
摘要:
如果自己定义的类中并不需要copy assignment操作符或者copy构造函数,为了避免编译器自动生成 因为编译器自动生成的没什么用,一般是按照顺序进行赋值或者拷贝,对于有对象内含有指针的话可能会出现一些问题 可以在private中声明(并不定义)它们。但是,友元和成员函数依然可以调用它们。 在 阅读全文
posted @ 2017-10-01 14:58
CoderZSL
阅读(166)
评论(0)
推荐(0)
摘要:
当写下如下空类时: class Empty{}; 编译器处理后变成; class Empty { public: Empty() {}//默认构造函数 Empty(const Empty&) {}//默认拷贝构造函数 ~Empty(){}//默认析构函数 Empty& operator=(const 阅读全文
posted @ 2017-10-01 14:48
CoderZSL
阅读(206)
评论(0)
推荐(0)
摘要:
1.两种不同的常量:const在*左边表示被指物为常量,在右边表示指针为常量 * 常量指针:不可以改变指向的位置,但可以改变被指的内容(int* const num = 5); * 指针常量(指向常量的指针):可以改变指针指向的位置,但是不可以改变被指物的内容(const int* num = 5); 2.STL标准库中的迭代器 vector vec; const vector::... 阅读全文
posted @ 2017-10-01 14:47
CoderZSL
阅读(193)
评论(0)
推荐(0)
摘要:
一. 永远在使用对象之前将它初始化 1.对于内置类型,手动完成初始化。 例如:int =0; 2.除了内置类型之外的类型,由构造函数进行初始化:确保每个构造函数都将对象的每一个成员进行了初始化。 二. 特别区分“赋值”和“初始化” 例如:有一个类:A中有一个成员变量string name; 有一个构 阅读全文
posted @ 2017-10-01 14:47
CoderZSL
阅读(184)
评论(0)
推荐(0)
摘要:
1.#define不被视为语言的一部分,并且使用常量会比#define导致较小的码 2.常量替换#define的两种情况 定义常量指针(当指针所指物为常量时,应该有两个const),const char* const A = “zhou”; class中的常量:将常量的作用域限制在类中,因此必须为类 阅读全文
posted @ 2017-10-01 14:46
CoderZSL
阅读(181)
评论(0)
推荐(0)
摘要:
两种选择: 类的行为像一个值:有自己的状态,拷贝一个像值的对象时,副本和原对象是完全独立的。改变副本不会改变原对象。 类的行为像一个指针:类是共享状态,当拷贝这个对象时,原对象和副本对象使用相同的底层数据,改变副本也会改变原对象。 1.行为像值的类 拷贝对象,而不是拷贝指针。 代码如下: class 阅读全文
posted @ 2017-10-01 14:30
CoderZSL
阅读(174)
评论(0)
推荐(0)
摘要:
1.拷贝构造函数 基本形式:Name(const Name&) 对于类类型成员,会调用拷贝构造函数拷贝,对于内置类型成员就直接拷贝。对于数组,合成的拷贝构造函数会逐个拷贝都另一个数组中(内置类型)。 拷贝构造函数发生的时候: 发生在用 = 定义变量时 将一个对象作为实参传递给一个非引用类型的形参 从 阅读全文
posted @ 2017-10-01 14:29
CoderZSL
阅读(205)
评论(0)
推荐(0)

浙公网安备 33010602011771号