自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 纯虚函数

1.当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,其实现留待派生类完成。例如,把多边形作为一个基类可以派生出三角形,正方形等子类,但多边形本身生成对象就不大合理了,这时就可以把多边形的成员函数定义为纯虚函数。 2.含有纯虚函数的类为抽象类,抽象类所包含的函数仅仅是声明,都是没有函数定义的,所以抽象类不能创建对象。

2014-08-24 22:22:55 549

原创 虚继承

class A { public: virtual ~A(){cout<<"~A"<<endl;} void funA(){cout<<"funA"<<endl;} }; class B:virtual public A { public: ~B(){cout<<"~B"<<endl;} void funB(){cout<<"funB"<<endl;} }; class C:virtu

2014-08-24 17:40:17 367

原创 虚函数

class Father { public: virtual ~Father() { cout<<"destruct father"<<endl; } void nationality() { cout<<"nationality is China"<<endl; } void born() { cout<<"was born in China"<<endl; }

2014-08-24 16:28:15 372

原创 C++ primer第五版_定义行为像值的类_行为像指针的类

//行为像值的类 class HasPtr { public: HasPtr(const std::string &s = std::string()):ps(new std::string(s)), i(0) {} HasPtr(const HasPtr &p):ps(new std::string(*p.ps)), i(p.i) {} HasPtr& operator=(const Ha

2014-08-17 17:53:37 1197

原创 C++ primer第五版_重载运算

0、定义重载的运算符是,必须首先决定是将其声明为类的成员函数还是非成员函数 1、算术、相等性、关系、位运算、输入输出等的重载应该定义成非成员函数 2、重载输出运算符的第一个形参是一个非常量(向流写入内容会改变其状态)ostream对象的引用(无法复制ostream对象),第二个形参是该类的常量(避免修改)引用(避免复制),返回ostream形参(与其它输出运算符保持一致) 3、重载输入运算符

2014-08-17 17:12:34 426

原创 C++ primer第五版_拷贝控制

0、拷贝初始化发生的情况:使用=初始化,非引用传参,返回一个对象,列表初始化数组或聚合类 1、编译器可以绕过拷贝构造函数,但拷贝构造函数必须是存在且可访问的(GCC是这样,但VS可以是private的) 2、赋值运算符通常应该返回一个指向其左侧运算对象的引用,这样可以与内置类型的赋值保持一致 3、一般需要析构函数来释放资源的类,通常也需要自己定义拷贝和赋值操作来分配资源 4、可以通过将拷贝

2014-08-17 17:09:37 631

原创 C++ primer第五版_IO库

第8章 0、导致缓冲刷新的原因有:缓冲区满、显示刷新(endl;flush;ends)、操作符(unitbuf)、关联输入和输出流。 1、设置每次输出后都刷新缓冲区:cout 2、如果程序崩溃,输出缓冲区不会被刷新。 3、从输入流读数据,往输出流写数据。 4、iostream处理控制台IO,fstream处理命名文件IO,stringstream完成内存string的IO。

2014-08-16 19:03:49 387

原创 C++ primer第五版_类

0、常量对象,以及常量对象的引用或指针只能调用常量成员函数。 1、如果非成员函数是类接口的组成部分,则这些函数的声明应该与类在同一个头文件内。 2、IO类属于不能被拷贝的类型,读取或写入的操作会改变流的内容,所以IO类以普通引用做参数。 3、拷贝构造函数的调用:初始化变量、以值的方式传参、返回一个对象。 4、使用struct关键字,则定义在第一个访问说明符之前的成员是public的;使用c

2014-08-16 18:57:02 623

原创 C++ primer第五版_表达式

第3、4章 0、对string对象中每个字符的遍历,可以使用范围for语句,for(auto c : str)。 1、理解数组声明的含义,最好从数组的名字开始按照由内向外的顺序阅读。 2、函数的调用顺序没有明确规定。 3、有4种运算符明确规定了运算对象的求值顺序:&&运算符、||运算符、条件(?:)运算符、逗号运算符。 4、const_cast只能改变运算对象的底层const。const

2014-08-16 18:54:46 355

原创 C++ primer第五版_变量和基本类型

0、赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。 1、赋给符号类型一个超出它表示范围的值时,结果是初始值的二进制保留符号类型的有效位后求原码的数。 2、初始化是创建变量时赋予一个初始值,赋值是把对象的当前值擦除,而以一个新值来替代。 3、int a{12};为列表初始化,不允许丢失信息的列表初始化 int a{12.5}; 4、定义于任何函数体

2014-08-16 18:30:08 460

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除