![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
tyrocjl
这个人很懒,什么都没有留下哦
展开
-
C++学习之IO流
主要I/O流类格式化I/O1)格式化函数(成员函数)cout << 10/3.0 << endl;//3.33333cout.precision(10);cout << 10/3.0 << endl;//3.3333333332)流控制符(全局函数)#include cout << 10/3.0 <<...原创 2019-12-01 10:21:25 · 183 阅读 · 0 评论 -
C++学习之异常处理
传统C中的错误处理1)通过返回值表示错误优点:函数调用路径中所有栈对象都可以被右花括号正确的析构,不会内存泄漏.缺点:错误处理流程比较复杂,需要逐层返回值判断,代码臃肿.#include <iostream>#include <cstdio>using namespace std;class A{public: A(void){ cout <...原创 2019-11-30 15:03:41 · 82 阅读 · 0 评论 -
C++学习之typeid操作符
typeid操作符#include typeid(类型/对象)//返回typeinfo对象,用于描述类型信息1)typeinfo类中包含了name()成员函数,可以获取字符串形式的类型信息.2)typeinfo类支持比较操作符重载,可以直接进行类型之间比较;如果类型之间存在多态的继承关系,typeid还可以利用多态的语法特性,确定实际的对象类型。#include <iostream...原创 2019-11-30 14:29:36 · 170 阅读 · 0 评论 -
C++学习之多态
虚函数覆盖(函数重写),多态的概念1)如果将基类中某个成员函数声明为虚函数,那么其子类中与该函数具有相同原型的成员函数就也是虚函数,并且对基类中的版型形成覆盖,即函数重写(override).2)满足虚函数覆盖要求后,通过指向子类对象的基类指针或者通过引用子类对象的基类引用,调用虚函数,实际被执行的将会子类中重写的覆盖版本,而不是基类中原始版本,这种语法现象就是多态。class Base...原创 2019-11-30 13:56:50 · 122 阅读 · 0 评论 -
C++学习之多重继承,钻石继承,虚继承(二)
多重继承:一个子类可以同时继承多个基类,这样继承方式称为多重继承 向上造型时,编译器会根据各个基类子对象的内存布局,自动进行偏移计算(如,第一个基类子对象的起始地址和整个对象的起始地址一样),以保证指针的类型和所指向的目标基类子对象类型一致。#include <iostream>using namespace std;class Phone{//电话publi...原创 2019-11-29 14:50:28 · 210 阅读 · 0 评论 -
C++学习之继承(一)
继承的概念通过一种机制表达类型之间共性和特性方式,利用已有的数据类型定义的新的数据类型,这种机制就是继承。子类(派生类)继承父类(基类)继承的语法class 子类:继承方式 基类1, 继承方式 基类2... ...{ ...};继承方式:1)公有继承public2)保护继承 protected3)私有继承 private公有继承的特性(public)1)子类...原创 2019-11-27 11:28:14 · 220 阅读 · 0 评论 -
C++学习之操作符重载
二十 操作符重载(operator)1 基本概念操作符重载就是一些具有特殊名称的函数,“operator操作符”,把已存在操作进行重新定义,针对自定义的类类型对象,完成自定义的运算功能.eg:复数(1+2i) + (3+4i) = 4+6i2 双目操作符重载: L#R1.1 运算类的双目操作符:+ - …–》表达式结果是右值,不能对表达式结果再赋值–》左右操作数既可以是左值也可以是...原创 2019-11-25 20:52:49 · 305 阅读 · 0 评论 -
C++学习之成员指针
成员变量指针1)定义类型 类名::*成员指针变量名 = &类名::成员变量; 2)使用对象.成员指针变量名;注:"."被称为直接成员指针解引用操作符对象指针->*成员指针变量名;注:"->*"被称为间接成员指针解引用操作符#include <iostream>#include <cstdio>using namespace std...原创 2019-11-25 13:11:48 · 251 阅读 · 0 评论 -
C++学习之静态成员和单例模式
静态成员变量 class 类名{ static 数据类型 变量名;//声明 };数据类型 类名::变量名 = 初值;//定义和初始化1)普通成员变量属于对象,而静态成员变量不属于对象,静态成员变量内存在数据段(全局区)(sizeof(类名)会发现,静态成员不计入总大小),可以把静态成员变量理解为是被限制在类的内部去使用的全局变量.2)普通成员变量需要在构造定义和初始化,而静态...原创 2019-11-25 10:42:55 · 430 阅读 · 0 评论 -
C++学习之拷贝构造和拷贝赋值
浅拷贝和深拷贝1)如果类中包含了指针形式的成员变量,缺省的拷贝构造只是复制了指针变量自身,而没有复制指针所指向的内容,这种拷贝方式被称为浅拷贝。2)浅拷贝将会导致不同对象之间的数据共享,如果数据在堆区,析构时还可能会引发"double free",导致进程终止,所以就必须自定义一个指针复制指针所指向内容的拷贝构造函数,即深拷贝。#include <iostream>using ...原创 2019-11-25 08:49:46 · 394 阅读 · 0 评论 -
C++学习之析构函数
析构函数(Destructor)语法 class 类名{ ~类名(void){ //主要负责清理对象生命周期中的动态资源 } };1)函数名一定是"~类名"2)没有返回类型,也没有参数3)不能被重载,即一个类只能有一个析构函数当对象被销毁时,析构函数将自动被调用1)栈对象离开所在作用域时,析构函数被作用域终止的右花括号调用。2)堆对象的析构函数被delet...原创 2019-11-21 21:05:12 · 220 阅读 · 0 评论 -
C++学习之this指针和常成员函数
this指针1)类中的成员函数(包括构造函数、析构函数)中都隐藏一个该类类型指针参数,名为this;在成员函数中访问类中的其它成员,其本质都是this来实现的。2)对于普通成员函数,this指向调用对象的地址;如果对于构造函数,this指向正在创建的对象地址。3)大多数情况可以忽略this,在成员函数宏直接访问类中的其它成员,但是以下几个特殊场景必须要使用this指针: –...原创 2019-11-21 20:49:41 · 678 阅读 · 0 评论 -
C++学习之类及构造方法
(一)类类的一般语法形式 struct/class 类名:继承方式 基类,...{ 访问控制限定符: 类名(形参表):初始化列表{...}//构造函数 ~类名(void){...}//析构函数 返回类型 函数名(形参表){...}//成员函数 数据类型 变量名;//成员变量 };访问控制限定符1)public:公有成员,任何位置都可以使用2)priv...原创 2019-11-21 16:38:27 · 330 阅读 · 0 评论 -
C++学习之类型转换
隐式类型转换char c = ‘a’;int i = c;//隐式 void func(int i){}func(c);//隐式 int func(void){char c = ‘a’;return c;//隐式}显式类型转换2.1C++兼容C语言的强制转换int i = (int)c;//C风格强制转换int i = int(c);//C...原创 2019-11-21 10:50:52 · 95 阅读 · 0 评论 -
C++学习之引用、左值右值
引用定义1)引用即别名,就是某个变量的别名,对引用别名的操作与对变量本身完全相同.2)语法规则类型 & 引用名 = 变量名;注:引用在定义时必须初始化,初始化以后绑定的目标不能再改变。注:引用的类型与绑定的目标变量类型要相同。常引用1)定义引用时加const修饰,即为常引用,不能通过常引用修改引用的目标。const 类型 & 引用名 = 变量名;类型 co...原创 2019-11-20 21:12:08 · 228 阅读 · 0 评论 -
C++学习之动态内存分配
1 C语言动态内存管理1)分配:malloc()2)释放:free()2 C++动态内存管理1)分配:new/new[]2)释放:delete/delete[]#include <iostream>using namespace std;int main(void){ //int* pi = (int*)malloc(4); C语言 int* pi = ...原创 2019-11-20 20:56:47 · 150 阅读 · 0 评论 -
C++学习之函数重载、哑元参数、缺省参数、内联函数
函数重载1)定义在相同作用域,定义的同名函数,但是它们的参数必须有所区分,这样的函数将构成重载关系注:函数能否重载和返回类型无关.#include <iostream>using namespace std;void func(int i){ cout << "func(int)" << endl;}void func(int a, i...原创 2019-11-20 20:41:00 · 318 阅读 · 0 评论 -
C++学习之bool型和操作符别名
bool类型在C++中是基本的数据类型,专门表示逻辑值,逻辑真用true表示,如果逻辑假false。bool类型在内存上占一个字节:数值1表示true,数值0表示falsebool类型的变量可以接收任意类型表达式结果,结果非零则为true,为零则为false操作符别名&& <==> and|| <==> or^ <==> xor...原创 2019-11-20 19:32:16 · 272 阅读 · 0 评论 -
C++学习之第一个程序(在学过C后的基础上)
C++编译gcc xx.cpp -lstdc++ 或 g++ xx.cppC++源文件扩展名1).cpp //推荐2).cc3).cxx4).C原创 2019-11-20 19:16:40 · 144 阅读 · 0 评论