摘要:
抽象基类一个基类是抽象基类,它的虚函数必须是一个纯虚函数。纯虚函数是虚函数后加 =0 来定义的, =0 只能出现在虚函数的类内声明之后 :class Disc_quote : public Quote {public: Disc_quote() = default; Di... 阅读全文
2015年9月16日
2015年9月15日
摘要:
基类和派生类的定义以及虚函数基类Quote的定义:classs Quote {public: Quote() = default; Quote(cosnt std::string& book, double sales_price) : bookNo(book), price(sales... 阅读全文
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... 阅读全文
2015年9月9日
摘要:
函数调用运算符struct test { int operator()(int val) const { return (i > 0 ? i : -i); }};所谓的函数调用就是一个类重载了函数调用符,类在使用重载函数调用符时接受相应参数。这一过程就像是使用一个函数一样,因此叫做函数调用。上面的类... 阅读全文
2015年9月7日
摘要:
重载前须知重载运算符是特殊的函数,它们的名字由operator和其后要重载的运算符号共同组成。 因为重载运算符时函数, 因此它包含返回值、参数列表和函数体。对于重载运算符是成员函数时, 它的第一个运算对象被隐式的绑定到this指针上,因此,成员函数的重载运算符的显示参数数量比运算符的运算对象少一个。... 阅读全文
摘要:
/* Queue.h */#ifndef QUEUE_H_INCLUDED#define QUEUE_H_INCLUDED#include #include struct Queue_Array { int element; struct Queue_Array* next;};type... 阅读全文
2015年9月5日
摘要:
右值引用所谓的右值引用就是必须将引用绑定到右值的引用,我们通过&&来绑定到右值而不是&, 右值引用只能绑定到即将销毁的对象。右值引用也是引用,因此右值引用也只不过是对象的别名而已。右值引用可以绑定到要求转换的表达式、字面常量或者返回右值的表达式,但是右值不能绑定到一个左值上。int i = 42;i... 阅读全文
2015年9月4日
摘要:
/* StrVec.h */#ifndef _STRVEC_H_#define _STRVEC_H_#include #include #include #include class StrVec {public: StrVec() : first(nullptr), last_end(nullp... 阅读全文
摘要:
/* Message.h */#ifndef _MESSAGE_H_#define _MESSAGE_H_#include #include #include class Folders;class Message { friend class Folders;public: // Default ... 阅读全文
2015年9月3日
摘要:
定义行为像值的类行为像值的类,例如标准库容器和std::string这样的类一样,类似这样的类我们可以简单的实现一个这样的类HasPtr。在实现之前,我们需要:定义一个拷贝构造函数,完成string的拷贝,而不是指向string的指针的拷贝;定义一个拷贝赋值运算符,释放当前的string,并从右侧拷... 阅读全文