C++(二)

1、虚继承

https://www.nowcoder.com/test/question/done?tid=21293634&qid=36517#summary

2、建立类模板的对象时,首先需要将类模板实例化,即向模板传递参数完成类模板的实例化,然后在定义该类的对象。模板函数只有在使用时候才会进行实例化。

3、宏只是预定义的函数,在编译阶段不进行类型安全性检查,在编译的时候将对应函数用宏命令替换。对程序性能无影响。

4、宏与类型无关,但是 c++ 中函数必须指定返回类型,故宏可以做函数不能做的事

5、无符号号整数和有符号整数相加,有符号整数转化为无符号整数

6、assert 含义是断言,它是标准 C++ 的 cassert 头文件中定义的一个宏,用来判断一个条件表达式的值是否为 ture, 如果不为 true, 程序会终止,并且报告出错误,这样就很容易将错误定位 

通常我们开发的程序有 2 种模式:Debug 模式和 Release 模式

1. 在 Debug 模式下,编译器会记录很多调试信息,也可以加入很多测试代码,比如加入断言 assert, 方便我们程序员测试,以及出现 bug 时的分析解决

2. Release 模式下,就没有上述那些调试信息,而且编译器也会自动优化一些代码,这样生成的程序性能是最优的,但是如果出现问题,就不方便分析测试了

7、fork函数 https://coolshell.cn/articles/7965.html

8、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

9、

1、栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。

2、堆区(heap) — 一般由程序员分配释放, new, malloc 之类的,若程序员不释放,程序结束时可能由 OS 回收 。

3、全局区(静态区)(static)— 存放全局变量、静态数据、常量。程序结束后由系统释放。

4、文字常量区 — 常量字符串就是放在这里的。程序结束后由系统释放。

5、程序代码区 — 存放函数体(类成员函数和全局函数)的二进制代码。

////////////////////////////////////////

a,全局变量,全局区;

b,成员变量,堆区;(我是这样理解的,因为对象要申请,会放在堆区,所以类的成员也就是放在堆区)

c,静态变量,静态区;

d,方法变量,栈区;

p,方法变量,栈区,指向堆区的对象。

10、函数有返回值的话就可以作为实参传给另外一个函数的形参用

11、c 语言中的宏是完全文本的替换。add(a+b)和 a+b 中,在程序运算中后者代替了前者。也就是说 5*add (3+4) 就是 5*3+4,答案就是 19。

12、一、静态成员的特点:

(1)static 数据成员在类的内部声明,但只能在类的外部定义,在类的外部不能指定 static,在类的定义时候进行初始化;

(2)static 数据成员只能在类的外部进行初始化(特例:当整型 const static 数据成员被常量表达式初始化时,就可以在类的内部进行初始化,但还需要在外部进行定义)。

(3) static 数据成员可以是该成员所属的类类型,而非 static 数据成员只能自身类的引用或者指针。

(4)static 数据成员可以用作类成员函数的默认实参。

(5)static 数据成员的值可以改变。

二、静态成员和非静态成员的区别:

(1) 静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类和对象都可以进行访问;

(2)不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象访问;

(3) 一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。

(4) 静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。

三、静态成员函数的特点:

(1) static 成员函数没有 this 形参,它可以访问所属类的 static 成员,但不能访问非 static 成员。

(2)static 成员函数既可以在类的内部定义,也可以在类的外部定义,在外部定义时,不能重复指定 static 保留字。

(3)static 成员函数不能声明为虚函数,不能实现动态绑定

(4)static 成员函数不能声明为 const,因为 const 是针对 this 是不是 const 而言的

(5)构造函数、析构函数不能为静态函数。

13、

vector 是顺序存储的,只有在尾部插入才不会导致迭代器失效,在头部插入或者中间插入都会导致插入的部位以及其后的所有迭代器都失效;

map 是映射,key 和 value 是一一对应的,在内存中是零散存在的,迭代器通过 key 找到 value,无论怎么插入都不会让迭代器失效,当然删除只会使得被删除元素的迭代器失效

14、null 为一个宏 (void*) 0, 故可以理解为 '\0' 不存在 '\' 字符,只有 '\\'

15、已经定义过的全局变量 假如用引用头文件的方式引用,假如有两个 cpp 以上引用这个头文件就会出现重复定义,用 extern 引用 只是声明,不会分配内存,不会重复定义,所以用 extern。

16、const 用来说明所定义的变量是只读的。 这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用

17、数组名 a 可以作为数组的首地址,&a 表示一个指向大小为 5 数组的指针,那么 & a+1 就是表示一个指向大小为 5 的下一个数组的指针

18、引用数据类型是引用传递(call by reference),基本数据类型是值传递(call by value)

值传递不可以改变原变量的内容和地址 ---》原因是 java 方法的形参传递都是传递原变量的副本,在方法中改变的是副本的值,而不适合原变量的

引用传递不可以改变原变量的地址,但可以改变原变量的内容 ---》原因是当副本的引用改变时,原变量 的引用并没有发生变化,当副本改变内容时,由于副本引用指向的是原变量的地址空间,所以,原变量的内容发生变化。

19、运算符重载时要遵循以下规则:

(1) 除了类属关系运算符 "."、成员指针运算符 ".*"、作用域运算符 "::"、sizeof 运算符和三目运算符 "?:" 以外,C++ 中的所有运算符都可以重载。

(2) 重载运算符限制在 C++ 语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。

(3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。

(4) 重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。

(5) 运算符重载不能改变该运算符用于内部类型对象的含义。它只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时。

(6) 运算符重载是针对新类型数据的实际需要对原有运算符进行的适当的改造,重载的功能应当与原有功能相类似,避免没有目的地使用重载运算符。

20、究极指针 https://www.nowcoder.com/test/question/done?tid=21306637&qid=112251#summary

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

推荐阅读更多精彩内容