随笔分类 - C++
C++相关知识
摘要:异常处理 什么是异常:不常发生但无法避免。 返回错误码 设置errno全局变量 抛出异常 捕获异常: 用Try{}把可能发生异常的代码包起来紧跟其后用若干个(至少一个)catch(类型 e){}来捕获指定类型的异常并处理,处理后程序从最后一个catch块后继续运行。 抛出异常:throw 数据; 被
阅读全文
摘要:string类--C++风格的字符串类,<string> 构造函数:string(const string& s),string(const char* s) string(int n,char c); 运算符:<<,>>,=,+,+=,[]不检查越界,at(int)会检查越界,比较运算符<,<=,
阅读全文
摘要:纯虚函数:没必要或者不应该有函数体的虚函数,用"=0;"来取代函数体。有纯虚函数的类称为抽象类(缺少函数体),不允许直接用抽象类来创建对象。抽象类总数用来作为父类,由子类来实现(覆盖)那些纯虚函数,从而可以创建子类类型的对象。子类对象可以当成父类对象的引用,或者可以用父类指针指向子类对象。 ××××
阅读全文
摘要:多态 什么是多态:对各种对象发出同一种指令时,各个对象能根据自身的情况作出相应的响应 如果希望在调用函数时系统根据对象真是类型去转调用相应的函数,需要把那个函数声明为virtual虚函数。子类中可以覆盖这个函数,也自动成为虚函数。覆盖(owerride)要求函数名和参数表都相同返回类型也要一致(比如
阅读全文
摘要:面向对象编程之继承 定义一个类的时候想重用一个已有的类,就可以使用继承。 class NewClass:public OldClass{ //新增加的成员 }; 新类会继承旧类的全部成员,成为新类中的成员。新类可以增加新的成员,实现对旧类的扩展。继承方式可以有public/private/prote
阅读全文
摘要:复习: 运算符重载: 编译器把运算符当作函数 全局 函数名:operator 运算符 参数表:所有操作数 返回类型:合乎情理即可 成员 函数名:operator 运算符 参数表:除第一个之外的操作数,当前对象作为第一个操作数 返回类型:合乎情理即可 编译器会尝试这两种形式([]()=->type只当
阅读全文
摘要:运算符函数的定义格式二:成员函数 返回类型operator运算符(除第一个操作数之外的参数表) 双目:运算结果类型operator运算符(第二个操作数) 单目:运算结果类型operator运算符() 以成员函数形式定义时,第一个操作数作为了当前对象,不需要作为实参传递,只需要传递剩余的操作数就可以了
阅读全文
摘要:面向对象的扩展功能 备注:编译器在编译一个类时,会先扫描类定义(不含函数体),之后才扫描类实现(各个成员函数的函数体,静态成员变量的初始化),所以在类的成员函数里可以访问在后面才出现的成员。 const对象调用的成员函数也要求不会修改成员变量的数据。成员函数可以在参数表后用const来宣称自己不会修
阅读全文
摘要:拷贝构造 零初始化:类型名(),对于基本类型而言是数值0,对于类或者结构类型而言是匿名对象。 当用一个同类对象初始化一个同类新对象时,调用的自然是拷贝构造函数。一个类如果没有定义拷贝构造函数,编译器会自动产生一个构造函数,内容是逐个复制对于的成员。这一般可以满足程序的需求。如果其中有指针成员指向动态
阅读全文
摘要:接上一篇 问题,如何在Main函数之前/之后执行某个动作? 答案,可以用全局对象的构造函数和析构函数来实现 对象本身占用的空间会在超出作用范围时或者delete时自动释放,如果对象还额外分配了资源,可以在析构函数中释放额外资源。 匿名对象 直接定义一个对象但不给提供名字,这个对象会在这个语句之后就立
阅读全文
摘要:复习 面向对象 封装(写类),前提是抽象。从对象、行为/交互角度去考虑程序如何实现 类定义:数据,函数,访问限制(public允许本类之外的函数也可以访问,private只允许本类的成员的函数访问),多文件,类实现放在.cpp文件,类定义里面的函数只声明(放在.h文件中#ifndef) 构造函数:创
阅读全文
摘要:指针 用来保存某种类型的变量的地址的变量,取地址& ->知道变量取地址,某个地址的变量: *地址 成员指针,(*地址).成员,地址->成员 向函数传递参数的时候,如果希望函数能操作某个变量里的数据,就把变量的地址传递给函数,函数里就可以根据地址找到内存中的那个变量,从而取得或者改变变量里的值。 地址
阅读全文
摘要:C++函数: C函数潜规则: 1.默认返回int类型 2.空参数表示参数个数随意 C++以上两点作废 重载/形参/实参/哑元 哑元: sort(int a[],int n,int method)->sort(int a[],int n,int) 函数的声明和定义可以分开,有默认值的参数写在声明定义里
阅读全文

浙公网安备 33010602011771号