博览网--C++面向对象高级编程(下)-- C++学习第四周笔记

一、 转换函数 conversion function

1) 转换函数没有返回类型,函数名称就是转换后的类型

2) 通常都会加上const;

double d=4+f     编译过程是否是先找操作符重载,不满足再找类型转换(待确定)

转换(faction -> double)

3)  转换函数不一定是基本类型

二、no-explicit-one-argument/explicit-one-argument ctor

1) 显式构造函数:

按照默认规定, 只有一个参数的构造函数也定义了一个隐式转换, 

explicit关键字只对有一个参数的类构造函数有效, (其他参数没有默认值, 如果有默认值也按照一个参数处理)

关于 explicit  下面链接的作者说得比较清楚

http://www.cnblogs.com/ymy124/p/3632634.html

参考他的博文写了一个例子


#ifndef __CXSTRING__

#define __CXSTRING__

#include <iostream> 

using namespace std;

class CxString

{

public:

explicit CxString (int age)              { cout << "ctor 1" << endl; }

CxString (const char *p)                 { cout << "ctor 2" <<endl;|

}

#include#include "cxstring.h"

using namespace std;

int main() {

CxString string1(24);

CxString string2 = 10;

//CxString string3;

CxString string4("abc");

CxString string5 = "def";

//string3 = string1;

return 0;

}

新增 explicit 后  编译报错

week4test.cpp:9:21: error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]

CxString string2 = 10;

                               ^

目前看如果对 有  CxString (int age) 未 增加 explicit 编译器 对 10 进行了  CxString(10)的转换, 而增加explicit后编译器使用另外一个只有一个参数的构造函数函数  CxString (const char *p) 对 10 进行转换, 这个时候由于参数类型不同编译报错

应证了“按照默认规定, 只有一个参数的构造函数也定义了一个隐式转换,”



三、 pointer like class

关于智能指针, share-pointer   ->操作符可以复用

关于迭代器: 操作符重载


四、 function like class

对操作符号() 的重载


五、 namespace

划分作用域


六、类模板

类模板需要写明类型

七、 函数模板

函数模板使用式编译器再进行确定, 不需要写明类型

八、成员模板

模板中包含模板

九、模板特化


十、模板偏特化

1)个数

2)范围 类型变为指针

十一、模板模板参数

1)将一个模板做为另外一个模板的参数

十二、关于C++标准库

1)容器:

2)迭代器;

3)仿函数;

4)算法;

十三 、 variadic templates

数量不定的模板参数

template <typename...Types >

function (const Types& ... args)

sizeof...(args) 参数个数

十四 、 auto

编译器自动推导类型, 只有再定义并初始化赋值时有效


十五、 ranged-base for

for (decl: coll) {

    statement

}

十六、 reference

reference一般用于参数传递和函数返回;

函数签名(函数名+参数部分) const也属于签名一部分


十七、 object model

1) 继承和构造和析构  构造先父类后子类, 析构先子类后父类

2) 组合的构造和析构  container调用component 构造, 再构造自己,  container先自己析构, 再析构component

3) 继承+组合  base -> component  ->子类  析构 子类->component -> base 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容