随笔分类 - C++
摘要:http://www.cnblogs.com/afreeman/p/8463227.html 引用 引用是变量的别名。变量类型 &引用名 = 变量。 1,引用定义时必须初始化,引用初始化后不能再改变其值。 2,引用不占空间,指针占空间;不能声明一个引用数组,int & r[3];//error co
阅读全文
摘要:不能重载的运算符只有5个: . (成员访问运算符) .* (成员指针访问运算符) :: (域运算符) sizeof (长度运算符) ?: (条件运算符)
阅读全文
摘要:我自己总结过一些常见的C++面试题,那个是基于一个同学的腾讯面经所问问题,再加上知识点扩展进行了总结,这个是网上之前就有的版本,比较基础,有些题目总结一下,不能忘了基础: 1.求下面函数的返回值( 微软) 假定x = 9999。 答案:8 思路:将x转化为2进制,看含有的1的个数。(华为面试也考这个
阅读全文
摘要:1. 结构体和共同体的区别。 定义: 结构体struct:把不同类型的数据组合成一个整体,自定义类型。 共同体union:使几个不同类型的变量共同占用一段内存。 地址: struct和union都有内存对齐,结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。 常见数据类型及其长度:
阅读全文
摘要:一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言; 应用广泛; 支持多种编程范式,面向对象编程,泛型编程,和过程化编程;广泛应用于系统开发,引擎开发;支持类,封装,重载等特性。 二 c 和 c++ 的区别 C++ 在 c 的基础上添加类; C主要是面向过程,C + +
阅读全文
摘要:缺点:降低程序的内聚性。名字冲突。生存期长,一直占用内存。任何函数都可能改变值,易发生意料之外的错误,调试困难。.全局变量是在程序开始时进行初始化的,这样会造成你的程序启动变慢。 优点:全局可视。减少传递实参带来的开销。 如果确实有大量数据需要共享的话,建议还是用单独的类封装一下。不到万不得已不要使
阅读全文
摘要:1,protected跟private相同,基类对象不能访问基类的protected成员。 2,派生类中可以访问基类的protected成员,就像访问自己的数据成员一样。 有public, protected, private三种继承方式,它们相应地改变了基类成员的访问属性。 1.public继承:
阅读全文
摘要:1,函数声明(.h)不要指定形参的默认值,在函数定义中指定。 2,指定了一个形参的默认值,后面的形参全都要指定默认值。 3,调用函数时,如果未传递参数的值,则会使用默认值,如果指定了值,则会忽略默认值,使用传递的值。如果实际参数的值留空,则使用这个默认值。
阅读全文
摘要:C++定义构造函数必须使用初始化列表的场合 1. 如果类中有一个成员是一个引用, 由于引用必须给予初始值, 因此, 引用必须使用初始化列表.2. 同理, const属性必须给予初始值, 必须使用初始化列表.3. 继承类中调用基类初始化构造函数, 实际上就是先构造基类对象, 必须使用初始化列表.
阅读全文
摘要:联合union 联合和结构体的区别:结构体为每一个成员分配存储空间,而联合体的内存大小采取最长成员所需的长度,联合变量只存在一个成员变量,所有成员共享同一片内存。 第二次为联合赋值会覆盖第一次赋值。 一个联合变量可以在不同时间存储多种类型的变量,节省内存。 union的字节数目是16-1 -1 -1
阅读全文
摘要:迭代器存有它们所指的特定容器的状态信息。迭代器的表现类似一个指向元素的指针,而运算符*被重载,以返回那个元素的引用。使用一个iterator指向一个可以修改的容器元素,const_iterator指向一个不可以修改的容器元素。迭代器分类:随机访问迭代器,双向迭代器,前向迭代器,输出迭代器,输入迭代器
阅读全文
摘要:STL:容器(模板数据结构),迭代器,算法。 当把一个元素插入到容器中时,便生成了这个元素的副本,因此,元素类型应该支持拷贝构造函数和赋值操作。 array:固定大小的数组。vector:动态数组,当vector已满时,会重新分配一个更大的连续内存,把原先的数据拷贝进去,并释放原来的vector。适
阅读全文
摘要:如果一个异常发生在成功分配内存后,但在delete语句执行之前,就会发生内存泄漏。 C++标准库提供了模板类uique_ptr来处理内存泄漏。 一个类uique_ptr的对象维护了指向动态分配内存的一个指针,当一个uique_ptr对象的析构函数被调用时,它将对其指针数据成员执行delete操作。
阅读全文
摘要:已经不用的内存,但没有释放,造成内存泄漏。内存已经释放,但是指向它的指针没有置空或销毁,造成空悬指针。 智能指针:指针变量销毁,它所指向的内存会自动释放。 unique_ptr是一种定义在<memory>中的智能指针(smart pointer)。它持有对对象的独有权——两个unique_ptr不能
阅读全文
摘要:析构函数 当类的对象撤销时,析构函数被隐式调用。析构函数不是释放内存,而是释放内存前进行扫尾工作。 对象何时撤销?1,静态分配的,生存期过后撤销。2,动态分配的,delete时撤销。 析构函数的命名 ~类型( ),析构函数没有形参和返回值。 一个类只能有一个析构函数,如果程序员不显示的提供析构函数,
阅读全文
摘要:拷贝构造函数的用途 拷贝构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制。 拷贝构造函数发生的时机 1,用一个对象初始化另一个对象 Cat c1(); Cat c2(c1);2,函数按值传递 (实参
阅读全文

浙公网安备 33010602011771号