- 博客(7)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注
原创 c/c++ 学习总结(8)-- 在某些情况下编译器为什么可以不合成拷贝构造函数
关于编译器为什么需要合成拷贝构造函数以及在什么时候合成拷贝构造函数的文章很多,但是反过来想想:为什么在某些情况下编译器可以不合成拷贝构造函数? 通常需要合成的情况有: 1)如果一个类没有拷贝构造函数,但是含有一个类类型的成员变量,该类型含有拷贝构造函数,此时编译器会为该类合成一个拷贝构造函数; 2)如果一个类没有拷贝构造函数,但是该类继承自含有拷贝构造函数的基类,此时编译器会为该类合成一...
2018-07-06 03:29:05
422
原创 c/c++ 学习总结(7)-- 标准库中IO缓冲区
c/c++语言把输入输出的功能从语言分离出来,通过标准库实现,如glibc,libc,libstdc++。记得在初学c语言时,书上说“stdin,stdout,stderr是c语言标准IO流,stdin负责从终端读入,stdout,stderr负责把信息输出到终端,中stderr用于处理错误信息”,当时,看到这里我就在想,同样是把信息输出到终端,什么需要专门提供一个处理错误的“stderr”来?这...
2018-06-25 21:29:26
353
原创 c/c++ 学习总结(6)-- 对引用的理解
为什么要在c++中引入“引用? 按照c++之父斯特劳斯特鲁普的说法是:(以下内容摘抄自斯特劳斯特鲁普的个人网站) C++ 的指针继承于 C,若要移除指针,势必造成严重的兼容性问题。引用有几方面的用处,但我在 C++ 中引入它的主要目的是为了支持运算符重载。例如: void f1(const complex* x, const complex* y) // 没有引用 { ...
2018-06-24 23:44:18
354
原创 c/c++ 学习总结(5)-- RTTI
RTTI(Run-Time Type Identification),通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。 const_cast<>() //去掉变量的底层const属性; int num = 10; //num本身就是变量 const int & r = num; //const引用 const_ca...
2018-06-24 17:43:47
233
原创 c/c++ 学习总结(4)--const关键字
const这个关键字在c++被“重载”了很多次,写在不同地方表示不同的意思。需要分别来说明: const 修饰变量 第一点:const修饰的变量一定要初始化,const变量的值在编译时就要被确定,放在“代码段”的“.rodata”中,如果在程序中显示的修改const变量,会报编译时错误,如果一些技巧来欺骗编译器来修改const变量,其行为是未定义的。例如: int num = 90; ...
2018-06-22 15:38:21
497
原创 c/c++ 学习总结(3)-- static关键字
被static修饰的内容表示连接性为内部,即static的函数或变量只会在当前翻译单元内部使用,具有内部连接性的名字在编译时就会生成,不需要等到链接时或是运行时,与之相对的是连接为外部的变量和函数(static的反义词可以认为是extern),由于具有外部连接性的名字可能会被多个文件共享使用,根据“单一定义规则ODR”,我们应当保证他们不能重名(函数名和变量名相同也算重名,因为在连接器眼中他们都是...
2018-06-21 23:49:04
545
原创 c/c++ 学习总结(1)-- 学习感想
之前的学习一直放在有道云笔记上,这次决定把笔记迁移到csdn上,方便相互学习。 学习了这么长时间的linux c/c++的开发,觉得这个方向就是个无底洞,对一些问题或特性的理解不能停留在语言的语法层面,还需要深入到语言规范,操作系统(Linux)的平台特性,甚至是硬件设计上去。为什么会这样说,举一些例子: 为什么说要了解语言的设计规范:我们可以定义一个空的结构体,对空结构sizeof,计算...
2018-06-21 01:28:02
1516
vim F5 编译显示找不到文件
2017-08-19
远程连接阿里云上的hadoop
2017-04-15
已经有wordpress再搭建一个phpbb
2017-04-14
linux下为java配置环境变量好还是在$PATH下设置软连接好
2017-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人