读书笔记
文章平均质量分 83
tjcbq
这个作者很懒,什么都没留下…
展开
-
Think_in_CPP第十二章 操作符重载(3)
12.4 操作符重载中的参数和返回值12.4.1 单目运算符全局函数方式const Integer& operator+(const Integer& a); const Integer operator-(const Integer& a); const Integer operator~(const Integer& a); Integer* operat原创 2012-09-15 11:55:01 · 275 阅读 · 0 评论 -
Think_in_CPP第十二章 操作符重载(6)
12.6 成员函数还是全局友元函数 什么时候以成员函数的形式重载运算符号?什么时候以友元函数的形式?如果两者都可以的话,建议使用成员函数的形式。而在有的情况下必须使用成员函数的形式,比如()。在有的情况下必须用友元函数的形式,如左值是其他类的对象的情况。>习惯性的将stream类放在左边,因此在对>进行重载一般采用友元函数的形式。12.7 Overloading a原创 2012-09-16 20:47:14 · 474 阅读 · 0 评论 -
Think_in_CPP第十二章 操作符重载(2)
12.3 二元运算符(Binary operators)12.3.1 全局函数方式 class Integer { long i; public: Integer(long ll = 0) : i(ll) {} // Operators that create new, modified value: friend const Integer operator原创 2012-09-15 08:59:30 · 330 阅读 · 0 评论 -
Think_in_CPP第十二章 操作符重载(1)
12.1 重载方式操作符有两种重载方式:成员函数和全局函数。以Integer类来说明这两种方式。12.1.1 全局函数方式class Integer { long i; Integer* This() { return this; } public: Integer(long ll = 0) : i(ll) {} // No side effects take原创 2012-09-14 22:28:29 · 407 阅读 · 0 评论 -
Think_in_CPP第十二章 操作符重载(7)
12.11 自动类型转换(Automatic type conversion)#include using namespace std; class One { public: int i; One() { i=1; cout << "One" << i<< endl;} }; class Two { int i; public: Tw原创 2012-09-17 19:53:08 · 344 阅读 · 0 评论 -
Think_in_CPP第十二章 操作符重载(4)
12.5 其他操作符12.5.1 操作符[ ]class IntArray { enum { sz = 5 }; int i[sz]; public: IntArray() { memset(i, 0, sz* sizeof(*i)); } int& operator[](int x) { require(x >= 0 && x < sz,原创 2012-09-15 20:44:01 · 458 阅读 · 0 评论 -
Think_in_CPP第十二章 操作符重载(5)
12.5.5 操作符->*和()的重载在重载->*之前,要先重载()。()操作的类型是->*返回的类型。operator()用来建立所谓的函数对象(function object)。()必须作为成员函数来重载,且可以带任意数量的参数,下面是一个例子:class LessThan { public: LessThan( int val ) : _val( val ){}原创 2012-09-16 20:23:14 · 320 阅读 · 0 评论 -
Think_in_CPP第十三章 动态建立对象(1)
13.1 new和delete13.1.1 单个对象的建立与删除MyType *fp = new MyType(1,2); //1,2是构造函数的参数MyType *fg = new MyType; // 要有无参数的构造函数,或者是用户没有定义编译器提供 // 的无参数构造函数(所谓的默认构造函数default constructor)MyType *fg原创 2012-09-19 21:24:36 · 212 阅读 · 0 评论