设为首页 加入收藏

TOP

C++ Primer 4th 读书笔记(第一部分)(四)
2015-07-20 17:45:07 来源: 作者: 【 】 浏览:11
Tags:Primer 4th 读书 笔记 第一部分
st member function)、构造函数(constructor)

this指针,每个成员函数(除了static成员函数外)都有一个额外的、隐含的形参this。

常量成员函数(const member function),const this指针

构造函数的初始化列表(constructor initializer list)

合成的默认构造函数(synthesized default constructor),不会自动初始化内置类型的成员!一般适用于仅包含类类型成员的类。

17.重载函数(overloaded function):出现在相同作用域中、具有相同的名字、形参表不同

函数重载(function overloading)与重复声明(redeclaration)的区别

1)重载与作用域

一般来说,局部地声明函数是一种不明智的选择。(会屏蔽而不是重载在外层作用域中声明的同名函数)

C++中,名字查找发生在类型检查之前。

2)函数重载确定(overload resolution,即函数匹配function matching)是将函数调用与重载函数集合中的一个函数相关联的过程。

3)函数重载确定的过程:

第一步,确定该调用所考虑的重载函数集合。该集合中的函数称为候选函数(candidate function),它是与被调函数同名的函数,并且在调用点上它的声明可见。

第二步,选择可行函数(viable function):从候选函数中选择一个或多个函数,它们能用该调用中指定的实参来调用。

第三步,寻找最佳匹配

4)实参类型转换

精确匹配(exact match)

通过类型提升(promotion)实现的匹配

通过标准转换(standard conversion)实现的匹配

通过类类型转换(class-type conversion)实现的匹配

5)可以基于函数的引用或指针形参是指向const对象还是指向非const对象,实现函数重载。(不能基于指针本身是否为const来实现函数的重载)

仅当形参是引用或指针时,形参是否为const才有影响

18.指向函数的指针

bool (*pf)(const string &, const string &);//pf points to function
bool *pf(const string &, const string &);  //pf is a function that returns a bool*
1)用typedef简化函数指针的定义(见下例)

2)可用函数名对函数指针做初始化或赋值(见下例)。(直接引用函数名等效于在函数名上应用取地址操作符)

3)指向函数的指针,可以不需要使用解引用操作符直接通过指针调用函数:

typedef bool (*cmpFcn)(const string &, const string &);
cmpFcn pf = lengthCompare; //lengthCompare is the name of a function
pf("hi","bye");
(*pf)("hi","bye");


4)函数指针的形参

5)返回指向函数的指针(理解的最佳方法:从声明的名字开始由里而外理解)

6)指向重载函数的指针

ps:4、5、6待补充。


标准IO库

1.IO类型通过继承关联,所以可以只编写一个函数,而将它应用到三种类型的流上:控制台、磁盘文件、字符串流。

2.出于某些原因,标准库类型不允许做复制和赋值操作(阐述类和继承时说明原因)。有两层含义:

1)不存在存储流对象的指针或引用;(只有支持分支的元素类型可以存储在vector或其他容器类型里)

2)形参和返回类型也不能为流类型。(传递和返回IO对象时,需要用引用和指针)







首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CF D. Bag of mice(概率dp) 下一篇UVA - 11291 Smeech (模拟)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)