随笔分类 -  C++笔记

摘要:参考:https://blog.csdn.net/HITXuQin/article/details/12850755 当我们将析构函数声明为私有时,就意味着析构函数只能在类域中被调用,无法被外界(包括自己的对象)调用。 表现为: 1. 禁止用户对此类型的变量进行定义,即禁止在栈内存空间内创建此类型的 阅读全文
posted @ 2019-07-31 16:46 朴者 阅读(3105) 评论(0) 推荐(0)
摘要:day11 面向对象程序设计 1.面向对象程序设计的核心思想是数据抽象、继承、动态绑定(也叫封装、继承、多态) 数据抽象:将类的接口和实现分离。继 承:可以定义相似的类型并对其相似关系建模。动态绑定:可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。 2.基类将它的成员函数分为两类, 阅读全文
posted @ 2018-11-09 14:58 朴者 阅读(235) 评论(0) 推荐(0)
摘要:day08 1. map又称为关联数组。 使用map来写单词计数程序 E1: map<string, size_t> word_count; string word; while (cin >> word) { ++word_count[word]; // map中的下标操作符[],如果word不在 阅读全文
posted @ 2018-11-01 23:03 朴者 阅读(158) 评论(0) 推荐(0)
摘要:day07 1.io对象不能拷贝或赋值,进行io操作的函数,通常以引用方式传递和返回流。读写一个io对象会改变其状态,所以传递和返回的引用不能是const的。2.【在使用基类对象的地方,可以用子类对象来代替】。 vector介绍1.vector用于操作大小的函数有size(),max_size(), 阅读全文
posted @ 2018-10-31 22:26 朴者 阅读(148) 评论(0) 推荐(0)
摘要:一般来说,swap操作将容器内容交换不会导致容器的指针、引用、迭代器失效。 但当容器类型为array和string时除外。 原因在于:SSO (Short String Optimization 指C++针对短字符串的优化。) 默认情况下,C++的std::string都是存储在heap中,导致访问 阅读全文
posted @ 2018-09-12 11:49 朴者 阅读(1574) 评论(0) 推荐(3)
摘要:day06 1.初始化和赋值是有区别的,前者效率更高。有时候必须使用初始化。如果成员是const、引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始值列表为这些成员提供初始值。注意:数据成员会按其出现在类定义中的顺序得到初始化,而不是按其在初始值列表中的顺序。2.如果一个构造函数 阅读全文
posted @ 2018-09-07 20:12 朴者 阅读(125) 评论(0) 推荐(0)
摘要:day05 1.当我们的类没有显式地定义一个构造函数时,编译器就会为我们隐式地定义一个默认构造函数,又称为【合成的默认构造函数】。默认构造函数又叫零参数构造函数,当我们显式定义了其他构造函数,编译器就不会生成默认的构造函数了。因为定义在块内的内置类型或复合类型被默认初始化会得到未定义的值,所以,如果 阅读全文
posted @ 2018-09-06 17:44 朴者 阅读(162) 评论(0) 推荐(0)
摘要:1.函数指针。函数指针指向某种特定类型,函数的类型由它的返回类型和形参类型决定,与函数名无关。比如:bool lengthCompare(const string &,const string &); 该函数的类型为bool(const string &,const string &)声明一个指向该 阅读全文
posted @ 2018-09-06 17:44 朴者 阅读(85) 评论(0) 推荐(0)
摘要:day03 1.在表达式求值之前,小整数类型的运算对象会被提升成较大的整数类型。eg: bool b = true; bool b2 = -b; // b2是true! 原因是当b参与运算时,被提升为int类型,即被提升为整数1,求负后为-1,所以b2为真。由此可见,bool类型不应该参与运算。2. 阅读全文
posted @ 2018-09-04 20:03 朴者 阅读(186) 评论(0) 推荐(0)
摘要:day02 1.关于类型别名(1)typedef double d; // d是double的别名(2)using d = double; // c++11新标准,d是double的别名注意问题:遇到一条使用了类型别名的声明语句,我们往往会尝试把类型别名替换为它原来的样子,这样是不对的。eg: ty 阅读全文
posted @ 2018-09-01 19:20 朴者 阅读(176) 评论(0) 推荐(0)
摘要:day01 1.当我们赋给一个无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。eg: unsigned char c = -1; // c的值为255 对于负数,应该加上被除数的整数倍使得结果大于等于0再运算,即 (-1)%256 = (-1+256)%256 阅读全文
posted @ 2018-08-29 19:20 朴者 阅读(220) 评论(0) 推荐(0)