C++primer puls 第六版
文章平均质量分 72
C++
holdtao
这个作者很懒,什么都没留下…
展开
-
十二章-类设计回顾-重要知识点
默认构造函数 1.没有定义构造函数,编译器将自动定义默认构造函数,如果定义了构造函数,将不会定义默认构造函数,如果需要默认构造函数则需要自己添加。 2.如果是派生类并且数据成员中还有类的话,默认构造会调用基类和数据成员相关类的构造函数。 3.如果类包含指针对象。必须初始化指针。 复制构造函数 复制构造函数接受所属类的对象作为参数 有四种情况会调用复制构造函数: 1.用已有对象初始化新对象 2.按值将对象传递给函数 3.函数按值返回对象 4.编译器生成临时对象 在使用new初始化的成员函数通常要求执行深复制,原创 2021-12-11 19:44:46 · 414 阅读 · 0 评论 -
第十三章 类继承
从已有的已有的类派生出新的类,而派生类继承了原有类的特性包括方法。 1.使用C-风格字符串初始化string对象的时候,调用接受const char * 作为参数的构造函数,使用对象初始化对象的时候,调用接受const string& 作为参数的构造函数。` String::String(const char *s) { len = std::strlen(s); str = new char(len + 1); std::strcpy(str, s); num_strings++; } S原创 2021-12-08 14:33:02 · 263 阅读 · 0 评论 -
第十二章队列模拟注意事项
1.将队列数组视为循环则可以避免移动首元素就改变后面元素的位置,采用链表就可以很好的满足队列的要求。 struct Node { Item item; struct Node * next; }; 这个是结点的结构体。 2.在类中嵌套结构体,类,或枚举,其作用域尾整个类,声明不会创建对象。 class Queue { private: struct Node { Item item; struct Node * next; }; ......... 3.对于类私有元素为co原创 2021-12-07 15:58:41 · 98 阅读 · 0 评论 -
第十二章-类和动态内存分配
动态内存和类 1.静态数据成员在类声明中声明,在包含类方法的文件中初始化。初始化时使用作用域运算符来指出静态成员所属的类。但是如果静态成员是整型或者是枚举型const,则可以在类声明中初始化。 .2.C++会自动提供这些函数,如果类中没有定义这些函数的时候。 默认构造函数 默认析构函数 复制构造函数 赋值运算符 地址运算符 3.复制构造函数:用于将一个对象复制到新创建的对象中 何时调用复制构造函数:(1)新建对象并将其初始化为同类现有对象时,复制构造函数将被调用。(2)每当程序生成了对象副本时,编译器都将使原创 2021-12-05 14:09:16 · 445 阅读 · 0 评论 -
使用类知识点总结
前面本人博客下已经总结了,如何定义一个用于表示对象的数据类型和对数据类型所执行的操作。还学习了,用于管理类对象的创建和删除的构造函数和析构函数。 运算符重载及其重载限制 运算符重载 1.运算符重载是一种形式的C++多态。 2. district2 = sid + sara; 可以用下面的表达式来解释 district2 = sid.operator+(sara); 这里sid对象隐式的调用了operator+,显示的调用了sara对象。 3.将参数声明为引用的目的是提高效率,因为如果值传递的话会先创建副本原创 2021-11-30 19:58:33 · 699 阅读 · 0 评论 -
内存模型和名称空间知识点总结
内存模型和名称空间 内容: 1.单独编译 2.存储持续性,作用域和链接性 3.定位new运算符 4.名称空间 单独编译 1.程序的三个部分 头文件:包含结构声明和使用这些结构的函数的原型 源代码文件:包含与结构有关的函数的代码 源代码文件:包含调用与结构相关的函数的代码 2.请不要将函数定义或者变量声明放在头文件里,这样可能会造成重复定义。除非这个函数是内联函数(什么是内联函数请看对象和类的知识点总结) 3.头文件一般包括 函数原型 结构声明 类声明 模板声明 使用#define或const 定义的符号常量原创 2021-12-01 21:55:33 · 97 阅读 · 0 评论 -
对象和类的知识点总结
1.OOP特性:抽象,封装和数据隐藏,多态,继承,代码的可重用性 2.类声明和类方法定义 类声明以数据成员的方式描述数据部分,以成员函数的方法描述共有接口。类方法定义:描述如何实现类成员函数。 3.C++常常将接口(类定义)放在头文件中,接口实现放在源代码里。一般类名首字母大写。 4.注意,class 声明一个类,注意和模板区分,模板可以用class typename声明,但是类不能用typename。 5.类中有三种权限:private public protected 其中protected跟继承相关原创 2021-11-28 10:20:36 · 354 阅读 · 0 评论 -
符合类型相关知识点
一.常规数组 数组定义:typename arrayName[arraySize](arraySize可以为int值,const值,常量表达式等可以最后确定一个准确的值)(new可以允许是变量) 1.程序不会对数组越界进行提示,所以一定要保证数组下标的有效性 2.sizeof(数组名)得到的是整个数组的长度,sizeof(数组名[i])得到的是单个成员的长度 3.c++11对数组初始化禁止缩窄操作(int->char属于缩窄操作,即数字范围变小的操作) 二.结构数组 结构数组定义:结构中.原创 2021-11-27 09:51:46 · 820 阅读 · 0 评论