摘要: 我也不知道为什么作者给这个条款起这样的名字,因为这样看上去重点是在“不抛出异常”,但事实上作者只是在全文最后一段说了一下不抛异常的原因,大部分段落是在介绍怎样写一个节省资源的swap函数。你可以试一下,只要包含了头文件iostream,就可以使用swap函数,比如:1 #include <iostream>2 3 int main()4 {5 int a = 3;6 int b = 4;7 std::swap(a, b);8 }结果就是a为4,b为3了,也就是说,在std的命名空间内,已经有现成的swap的函数了,这个swap函数很简单,它看起来像这样:1 templa... 阅读全文
posted @ 2013-06-16 22:13 Jerry19880126 阅读(1479) 评论(1) 推荐(1) 编辑
摘要: 还是举书上的有理数例子: 1 class Rational 2 { 3 private: 4 int numerator; 5 int denominator; 6 public: 7 Rational(int n = 0, int d = 1): numerator(n), denominator(d){assert(denominator != 0);} 8 int GetNumerator() const{return numerator;} 9 int GetDenominator() const {return denominator;}10 ... 阅读全文
posted @ 2013-06-16 16:58 Jerry19880126 阅读(824) 评论(0) 推荐(0) 编辑
摘要: 本条款还是讨论封装的问题,举书上的例子:1 class WebBrower2 {3 public:4 void ClearCach();5 void ClearHistory();6 void RemoveCookies();7 };定义了一个WebBrower的类,里面执行对浏览器的清理工作,包括清空缓存,清除历史记录和清除Cookies,现在需要将这三个函数打包成一个函数,这个函数执行所有的清理工作,那是将这个清理函数放在类内呢,还是把他放在类外呢?如果放在类内,那就像这样: 1 class WebBrower 2 { 3 … 4 void Clea... 阅读全文
posted @ 2013-06-16 10:40 Jerry19880126 阅读(1304) 评论(0) 推荐(0) 编辑