随笔分类 - C++笔记
C++异常、I/O流(day12)
摘要:一、(续day11异常) 7、标准异常类 标准异常类在下面的这个路径的头文件中有声明 C++语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception)。通过下面的语句来捕获所有的标准异常: try{ //可能抛出异常的语句 }catch(exc
阅读全文
C++-运行时类型信息,异常(day11)
摘要:一、运行时类型信息 1、typeid运算符 头文件:#include<typeinfo> C++的标准头文件,都对应相应的类 //sizeof(类型/变量/表达式),返回内存大小 typeid(类型/变量/表达式),返回typeinfo类型的对象,其中包含name()成员函数,返回字符串,描述类型信
阅读全文
C++-多态,纯虚函数,抽象类,工厂模式,虚析构函数(day10)
摘要:一、多态(更多见day9) 1、多态条件 1)多态特性除了要在基类中声明虚函数,并在子类中形成有效的覆盖,还必须通过指针或者引用来调用虚函数,才能表现出来,直接通过对象无法进行多态调用。 2)调用虚函数的指针也可以是this指针,只要它是一个指向子类对象的基类指针,同样可以表现出多态的特性。 二、纯
阅读全文
C++-子类的构造、析构、拷贝,多重继承,名字隐藏与重载,砖石继承,虚继承,多态(day9)
摘要:一、继承之子类的构造、析构、拷贝(部分见day8) 1、子类的拷贝构造 如上,有以下几点注意: 1)子类没有定义拷贝构造函数,编译器会自动为子类提供缺省的拷贝构造函数,该函数也会自动调用基类的拷贝构造函数,初始化基类子对象。 2)子对象定义了拷贝构造函数,那么需要在子类的初始化表中显式地说明基类子对
阅读全文
C++-继承,公有继承,继承方式和访问控制属性,子类构造函数,子类析构函数(day8)
摘要:一、继承 1、继承 通过一种机制,表达出类型之间的共性和特性的方式,利用已有的数据类型定义新的数据类型,这种机制称为继承。这个过程也叫做派生,所以子类也叫派生类。 继承语法: class 子类:继承方式 基类{....} 继承方式分为:公有继承(pubic)、保护继承(protected)、私有继承
阅读全文
C++-典型双、单目操作符重载,输入输出操作符重载,其他操作符重载及限制(day7)
摘要:一、双目操作符重载 1、运算类双目操作符(更多见昨天的笔记) 昨天讲的L.operator#(R)是成员函数的形式, 如:c1+c2=c1.operator+(c2); 也可以被编译器处理为::operator(L,R)的全局函数的形式,该函数的返回值也是表达式的值。 如:c1+c2=::opera
阅读全文
C++-拷贝赋值,静态成员,单例模式,成员指针,操作符标记,操作符函数,操作符重载(day6)
摘要:一、拷贝赋值 1、浅拷贝赋值 注意: 赋值拷贝也是浅拷贝,所以,当成员变量存在指针,引用可能存在内存共享的问题时,根据实际情况来决定是否进行深拷贝。同时,上例中s2在进行构造时,已经动态分配了内存,在进行拷贝赋值时,修改了成员变量m_str的指向,造成的内存泄漏。综上称为浅拷贝赋值。 此处,如果直接
阅读全文
C++-初始化表,this指针,常函数,析构函数,拷贝构造,拷贝赋值(day5续)
摘要:四、析构函数(Destructor) public: ~类名(void){...}//析构函数 1、析构函数特点 (1)析构函数是特殊的成员函数,名字“~类名” (2)没有返回类型,没有参数,不能被重载(能被重载的充分必要条件是包含参数),一个类只能有一个析构函数 (3)主要负责清理对象在构造时动态
阅读全文
C++-类型转换、类和对象、类的定义和实例化(day3续)
摘要:三、类和对象 1、什么是对象 万物皆对象,任何一种事物都可以看做对象 2、如何描述和表达对象 通过对象的属性(名词,数量词,形容词)和行为(动词)表达对象。 3、面向对象的程序设计 对自然世界中对象观察引入到编程实践中的一种理念和方法,这种成为“数据抽象”,即在描述对象时,把细节东西剥离出去,考虑一
阅读全文
C++-类型转换、类和对象、类的定义和实例化(day3)
摘要:一、类型转换 1、隐式类型转换 在上述这一段代码中,发生了char到int的隐式类型转换,不止如此,在参数传递,返回值等地方也可能存在隐式转换。 2、显式类型转换 (1)强制类型转换 (2)C++在兼容C强制转换的同时,同时增加四种操作符形式的类型转换 C++中四种操作符形式的类型转换: (1)静态
阅读全文
浙公网安备 33010602011771号