![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
c++Primer中文学习
weixin_39137699
阳光,热情,幽默
展开
-
c++ 用于大型程序的工具
17.1 异常处理17.1.1 抛出类类型的异常原创 2020-04-09 23:02:36 · 175 阅读 · 0 评论 -
C++面向对象编程
15.3转换与继承15.3.1 派生类到基类的转换1.引用不同于转换对象1.将对象传递给希望接受引用的函数时,引用直接绑定到对象,看起来再传递对象,实际上实参是对该对象的引用,对象未被复制。转换不会改变原派生类对象。2.将派生类对象传递给希望接受基类类型对象的函数时(不是引用),情况完全不同,形参是固定的,--在编译和运行时形参都是基类类型对象。如果用派生类型对象调用这种函数时,则...原创 2020-04-06 23:08:59 · 157 阅读 · 0 评论 -
14章重载操作符
为了程序看起来简洁,和方便,减少代码量,以及方便类类型操作像内置类型一样方便。于是,提出重载操作符。14.1 重载操作符的定义重载操作符是具有特殊名称的函数:保留字operator后接需定义的操作符号。14.1.2重载操作符必须具有一个类类型操作数注意:重载操作符必须具有至少一个类类型或枚举类型的操作数,这条规则强制重载操作符不能重新定义用于内置类型对象的操作符的含义。14.1.3...原创 2019-12-20 23:08:01 · 93 阅读 · 0 评论 -
智能指针
智能指针1.引入使用计数定义智能指针的通用技术是采用一个使用计数。智能指针将一个计数器与类指向的对象相关联。使用计数跟踪该类有多少个对象共享同一指针。使用计数为0时,删除对象。使用计数也叫引用计数。2.使用计数类单独定义一个类来封装使用计数和相关指针。class U_ptr{ friend class HasPtr; int *p; size_t use; U_Ptr(int*p...原创 2019-12-20 11:36:48 · 57 阅读 · 0 评论 -
第12章 c++类
c++如果显示定义了带参数的构造函数,那么编译器将不会自动生成默认的构造函数,所以,初始化类必须都要带参数的构造函数去初始化,所以这个时候,就必须显示初始化。正确的默认构造函数去初始化对象:Sales_item myobj(); //error:这个是函数的声明?Sales_item myobj; // ok 正确的方式在构造函数上防止隐式转换,加上如下关键字explicit ...原创 2019-12-19 23:08:57 · 66 阅读 · 0 评论 -
第7张函数
7.1.1 函数的返回类型函数的返回类型可以是内置类型,类类型,复合类型,还可以是void ,函数不能返回另一个函数,或者内置数组类型,但是能返回指向函数的指针,或者指向数组的指针的指针。7.2参数传递每次调用函数时,如果形参具有非引用类型,则复制实参的值,如果形参为引用类型的值,则它只是实参的别名。非引用形参表示对应实参的局部副本,对这类形参的修改仅仅改变了局部副本的值,一旦函数执行结束...原创 2019-12-18 21:42:38 · 87 阅读 · 0 评论 -
第8章标准IO库
IO库在三个独立的头文件1.iostream 定义读写控制窗口的类型2.fstream 定义读写已命名文件的类型3.sstream 用于读写存储在内存中的string对象.原创 2019-12-17 23:02:39 · 68 阅读 · 0 评论 -
第六章语句
C++ 特性的地方1.throw 表达式stdexcept头文件中定义了许多抛出的异常对象.2.标准异常定义在 4个头文件中。1.exception 头文件定义了最常见的异常类,它的类名是exception.这个类只通知异常的产生,但不会提供更多的信息。2.stdexcept定义了常见的异常类。3.new 头文件定义了bad_alloc异常类型,提供因无法分配内存而new抛出的异常。...原创 2019-12-17 21:45:37 · 72 阅读 · 0 评论 -
第5章表达式
i基础语句不做解释sizeof 返回一个对象或类型名的长度. 圆括号能推翻算术优先级算术转换其他隐式转换1.指针转换使用数组时,大多数情况下数组都会自动转换为第一个元素的指针int ia[10]int *ip = ia;转换为const 对象当使用非const对象初始化const对象的引用时,系统将非const对象转换为const对象。此外,还可以将非const对象的地...原创 2019-12-17 21:36:15 · 71 阅读 · 0 评论 -
第4章数组和指针
数组的定义和初始化注意:1.显示初始化数组元素在函数体外定义的内置数组,其元素均初始化为0;在函数体内定义的内置数组,其元素无初始化;不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化,如果该类没有默认构造函数,则必须为该数组的元素提供显式的初始化。2.特殊的字符数组字符数组在特殊的字面值的情况下,默认在数组最后一位加nullchar ca4[] = "...原创 2019-12-16 12:40:15 · 75 阅读 · 0 评论 -
第三章标准库类型
1.命名空间using声明using std:: string;就能使用string,必须引入头文件更便捷的使用方法:using namespace std;2.标准库string 类型对象定义和初始化string s1; //空串string s2(s1); //将s2初始化为s1的一个副本string s3("value"); //将s3初始化为一个字符串的字面值副本s...原创 2019-12-15 16:22:31 · 72 阅读 · 0 评论 -
第二章变量和基本类型
2.1基本内置类型整数,浮点,单个字符,布尔型的算术类型,还定义了一种void的特殊类型。算术类型的存储空间,以机器来定,存储空间是指用来表示该类型的二进制位数。 最小存储空间char 字符型 8位wchar_t 宽字符型 16位short 短整型 16位int 整型 16位long 长整型 32位floa...原创 2019-12-14 22:59:23 · 85 阅读 · 0 评论 -
第一章快速入门
c++程序从编译到运行的步骤:1.预编译 2.编译 3.汇编 4.链接gcc 和 g++分别是GNU的C和C++的编译器。一般分成四步:1. 预处理,生成.i的文件 [预处理器cpp]2. 将预处理后的文件不转换成汇编语言,生成.s文件[编译器egcs]3. 有汇编变为目标代码(机器代码)生成.o文件[汇编器as]4. 连接目标代码,生成可执行程序 [链接器...原创 2019-12-14 14:49:49 · 59 阅读 · 0 评论