2015年9月16日

摘要: 抽象基类一个基类是抽象基类,它的虚函数必须是一个纯虚函数。纯虚函数是虚函数后加 =0 来定义的, =0 只能出现在虚函数的类内声明之后 :class Disc_quote : public Quote {public: Disc_quote() = default; Di... 阅读全文
posted @ 2015-09-16 02:41 街角的咖啡店 阅读(251) 评论(0) 推荐(0) 编辑

2015年9月15日

摘要: 基类和派生类的定义以及虚函数基类Quote的定义:classs Quote {public: Quote() = default; Quote(cosnt std::string& book, double sales_price) : bookNo(book), price(sales... 阅读全文
posted @ 2015-09-15 02:39 街角的咖啡店 阅读(174) 评论(0) 推荐(0) 编辑

2015年9月10日

摘要: 类型转换运算符class SmallInt {public: SmallInt(int i = 0) : val(i) { if (i 255) throw std::out_of_range("Bad SmallInt value"); } operator int() const... 阅读全文
posted @ 2015-09-10 02:27 街角的咖啡店 阅读(165) 评论(0) 推荐(0) 编辑

2015年9月9日

摘要: 函数调用运算符struct test { int operator()(int val) const { return (i > 0 ? i : -i); }};所谓的函数调用就是一个类重载了函数调用符,类在使用重载函数调用符时接受相应参数。这一过程就像是使用一个函数一样,因此叫做函数调用。上面的类... 阅读全文
posted @ 2015-09-09 22:11 街角的咖啡店 阅读(247) 评论(0) 推荐(0) 编辑

2015年9月7日

摘要: 重载前须知重载运算符是特殊的函数,它们的名字由operator和其后要重载的运算符号共同组成。 因为重载运算符时函数, 因此它包含返回值、参数列表和函数体。对于重载运算符是成员函数时, 它的第一个运算对象被隐式的绑定到this指针上,因此,成员函数的重载运算符的显示参数数量比运算符的运算对象少一个。... 阅读全文
posted @ 2015-09-07 02:16 街角的咖啡店 阅读(171) 评论(0) 推荐(0) 编辑
 
摘要: /* Queue.h */#ifndef QUEUE_H_INCLUDED#define QUEUE_H_INCLUDED#include #include struct Queue_Array { int element; struct Queue_Array* next;};type... 阅读全文
posted @ 2015-09-07 01:17 街角的咖啡店 阅读(200) 评论(0) 推荐(0) 编辑

2015年9月5日

摘要: 右值引用所谓的右值引用就是必须将引用绑定到右值的引用,我们通过&&来绑定到右值而不是&, 右值引用只能绑定到即将销毁的对象。右值引用也是引用,因此右值引用也只不过是对象的别名而已。右值引用可以绑定到要求转换的表达式、字面常量或者返回右值的表达式,但是右值不能绑定到一个左值上。int i = 42;i... 阅读全文
posted @ 2015-09-05 00:07 街角的咖啡店 阅读(410) 评论(0) 推荐(0) 编辑

2015年9月4日

摘要: /* StrVec.h */#ifndef _STRVEC_H_#define _STRVEC_H_#include #include #include #include class StrVec {public: StrVec() : first(nullptr), last_end(nullp... 阅读全文
posted @ 2015-09-04 10:27 街角的咖啡店 阅读(120) 评论(0) 推荐(0) 编辑
 
摘要: /* Message.h */#ifndef _MESSAGE_H_#define _MESSAGE_H_#include #include #include class Folders;class Message { friend class Folders;public: // Default ... 阅读全文
posted @ 2015-09-04 10:18 街角的咖啡店 阅读(231) 评论(0) 推荐(0) 编辑

2015年9月3日

摘要: 定义行为像值的类行为像值的类,例如标准库容器和std::string这样的类一样,类似这样的类我们可以简单的实现一个这样的类HasPtr。在实现之前,我们需要:定义一个拷贝构造函数,完成string的拷贝,而不是指向string的指针的拷贝;定义一个拷贝赋值运算符,释放当前的string,并从右侧拷... 阅读全文
posted @ 2015-09-03 23:19 街角的咖啡店 阅读(209) 评论(0) 推荐(0) 编辑