摘要:下面提供一个比较完整的示例程序,一共有四个文件:main.cpp、test.c、test.h、test.hpp main.cpp test.hpp test.c test.h 上边所示程序不能直接用 g++ 编译,因为 g++ 在编译 test.c 时候函数 fun 由于没加 extern ”C“
阅读全文
摘要:示例代码: 基类中成员的访问权限是由上图所示几部分共同作用的结果,其最终的访问权限取基类中成员的访问指定符,基类的访问指定符的最 小值。 可以用 using 在派生类的类作用域中引入基类一个名称,起到改变基类中成员的访问权限的目的。 【通过using可以在继承而来的访问权限基础上做微调。】 多重继承
阅读全文
摘要:原指针: 相当于C中的指针。 智能指针: #include <memory> 不必使用 delete 运算符释放内存,只要不在需要智能指针,它们就会自动释放 智能指针在结束时候会自动将指着指向的内存释放掉,所以,智能指针只能指向动态分配的内存地址 unique_ptr<T> shared_ptr<T
阅读全文
摘要:数组的动态内存分配 通过指针存储类类型对象的地址
阅读全文
摘要:虚函数的默认参数值 如果虚函数在基类中的声明带有默认变元值,则通过基类指针调用该函数时,就总是从函数的基类模板中接受默认的变元值。 函数派生类版本中的默认值不起作用。 $ ./virtual 50carton volume is 20400 有虚函数的对象占用的字节数要比没有虚函数的对象多。 纯虚函
阅读全文
摘要:类中没有定义的虚函数称为纯虚函数,包含纯虚函数的类称为抽象类。 抽象类没有完整的描述对象,因此不允许创建抽象类的实例,该类存在的唯一理由是从中派生其他的类。 因为不能创建抽象类的对象,所以不能把它用作函数的参数类型或返回类型。 但是抽象类的指针或引用可以用作参数的或返回类型。 虚拟类默认的析构函数是
阅读全文
摘要:符号按照符号的ASC码数值从小到达排列,关键字按照英文字母排序。 & 【38】 位运算;取地址;左值引用【指针、引用都是可以做类型转换的】 && 【38 38】 逻辑运算;右值引用【注意:右值引用编译时候必须指定 --std=c++11】 :: 【58 58】 指定名称空间 const 表示对象不可
阅读全文
摘要:构造函数是一种特殊的函数,与包含他的类重名。 默认的构造函数是空的,当我们定义了任意一个构造函数之后,编译器就不再提供默认的无参构造函数。 构造函数没有返回值,因此没有返回类型。为构造函数指定返回类型是错误的。 默认构造函数的参数值,有默认参数的构造函数参数声明时是可以省略的【所以此处不能有没有参数
阅读全文
摘要:try...catch 中,控制权如何从 try块 转移到 catch块? 1.使用 throw 表达式将临时对象 temp 初始化为 Exception Type temp {theException}; 2.在 try 块中定义的所有自动对象调用析构函数【将在try中声明的局部变量释放掉】 3.
阅读全文
摘要:$ ./pointer_reference constructorconstructordestructortest...testdestructor //main函数中创建 t 实际上就是复制 $ ./pointer_reference constructordestructor //创建tt时候
阅读全文
摘要:转自: https://www.cnblogs.com/geloutingyu/p/8034904.html 1、自动对象默认情况下,局部变量的生命期局限于所在函数的每次执行期间。只有当定义它的函数被调用时才存在的对象称为自动对象。自动对象在每次调用函数时创建和撤销。该类型局部变量存储在栈上,在动态
阅读全文
摘要:迭代器 反向迭代器 迭代器常用操作【类比指针】:
阅读全文
摘要:引用有两种:左值引用,右值引用。 引用是复合类型,类似于起别名,通过在变量前边加 & 来定义。 1.定义引用时,必须指明白要引用的对象。 2.左值引用引用的对象必须是一个左值,const可以引用临时变量 3.与指针差异就是访问数据方式不一样 4.右值引用必须引用右值
阅读全文