C++语言中经典问题学习笔记
文章平均质量分 51
飞天剑舞920
这个作者很懒,什么都没留下…
展开
-
运算符的重载
1、运算符的重载意义:C++中自定义的数据类型是有限的,当使用用户自定义的数据类型时进行运算符操作时,就需要对运算符进行重载; 2、运算符重载的具体形式: 返回值类型 operator 运算符符号(参数说明) {//函数的内部实现;} 3、理论上运算符即可定义成全局函数亦可定义成成员函数,当被重载为全局函数时,有一个参数的运算符叫做一元运算符,有两个参原创 2015-07-26 18:09:05 · 379 阅读 · 0 评论 -
C++继承问题
1、集成式从上到下的继承,不能讲派生类的属性和行为赋给其基类; 2、派生类不能继承基类的构造函数和析构函数; 3、所有的多充继承都可以通过单一继承来实现,当某个类使用多继承时,积累的数量没有限制; 4、如果遇到基类与其派生类命名冲突的情况下,在进行调用时,如果调用基类的成员变量,必须通过全局分辨符“::”对其进行访问。原创 2015-07-21 20:49:27 · 419 阅读 · 0 评论 -
异常处理中的问题
一、C++异常处理机制可以实现: 1、允许从异常抛出点把任何数量的信息以类型的方式传递到异常处理器; 2、对于没有抛出任何异常的代码段,不会带来任何额外的时间和空间的开销; 3、保证所抛出的任何一个异常都能被适当的处理器捕获; 4、通过一种组合方式可以使用编写出处理一组异常的处理器; 5、能够直接应用于多线程的程序中。 二、异常处理的一般语法: try {/* 代码段 */原创 2015-08-01 18:42:50 · 491 阅读 · 0 评论 -
进程及线程(1)
1、进程可以通过CreateProcess()函数进行创建,通过ExitProcess()结束进程,用GetExitCodeProcess()函数获取进程退出值。 2、当进程结束时会造成: ExitProcess()会关闭该进程打开的所有对象句柄; 该进程中所有线程都不再执行; 进程对象的状态变成信号状态,任何等待该进程结束的线程继续执行; 进程中所有的线程编程信号状态,等到组成该进程的线原创 2015-08-11 11:35:13 · 405 阅读 · 0 评论 -
运行时类型标识RTTI常见问题分析
1、运行时类型标识(RTTI , Runtime Type Identification)提供了运行时确定对象类型及转换指针或者引用类型的方法。保证了面向对象语言中使用多态时能获得更合适的空间和效率。 2、typeid运算符可以获取与某个对象关联的运行类型信息。返回类型为type_infol类型。dynamic_cast运算符可以在运行时决定类型,如果成功将返回指针,不成功返回0。 3、基本的R原创 2015-07-29 18:15:12 · 576 阅读 · 0 评论 -
进程及线程(2)
1、线程的创建使用CreatThread()函数,如果创建成功则返回值为新线程的句柄,如果函数失败,则返回NULL。ExitThread()函数退出进程,使用GetExitCodeThread()函数来获得该线程的返回值。 2、当创建线程的时候,操作系统实际执行了 1)、分配线程内核对象标识和管理新创建的线程,内存对象保存很多系统信息来管理该线程,线程内核对象的句柄是CreatThread()函原创 2015-08-11 16:59:39 · 411 阅读 · 0 评论 -
类型转换中存在的问题
一1、C++对于系统数据类型可进行隐式转换和显式转换,但是对于用户自定义的数据类型无法自动进行类型转换操作,可通过两种转换函数的方式进行类型转换:构造函数充当转换函数和自定义类型转换函数。 二、使用构造函数进行类型转换时,类内至少需要定义一个只带一个参数的构造函数;当需要进行类型转换时,自动调用此构造函数; 三、转换函数一般形式:operator type(){… return目的类型数据}原创 2015-07-28 21:08:06 · 601 阅读 · 0 评论 -
用户自定义数据类型、结构和枚举中的问题
1、无名结构体就是不定义结构名,如需使用需在定义是定义结构变量,并且使用时需要注意结构变量的作用范围。 2、传址调用方式在传递结构时效率高于传值调用方式; 3、传址调用和传值调用区别:内存中需要的结构体变量的副本不同,传值调用需要复制一份结构体变量,传引用调用直接调用原结构体变量。 4、枚举类:关键字是:enum 一般形式:enum 枚举类型名{常数表} 一般将枚举类的每一个列表原创 2015-07-28 20:02:12 · 526 阅读 · 0 评论 -
内存管理中常见的问题
1、分配方式:3种从静态存储区域分配、在堆栈上分配和动态内存分配。 2、动态分配内存的缺点: 动态分配内存时有可能产生内存碎片; 如果动态分配内存失败,需要检查返回值或者捕获异常; 动态创建的对象可能被删除多次或者删除后还继续被使用,发生运行时的错误或者程序耗内存现象。 3、常见的内存错误: 内存泄露:通常是原创 2015-08-08 17:16:53 · 590 阅读 · 0 评论 -
指针和字符串
一、指针变量和引用的区别: 1、指针是一种值,可以被存储,可以在表达式中被求值,可以在函数之间传递,也可以被返回;引用虽然有类型,但它不是值; 2、指针变量的声明必须保证其类型要与指向的对象类型兼容,引用是一个现有对象的别名,是对变量的一种间接访问形式; 3、引用在创建时就必须初始化,不存在空引用,而指针可以为空指针; 4、一旦引用被初原创 2015-07-25 10:07:37 · 446 阅读 · 0 评论 -
C++中的多态问题
1、C++中有两种捆绑形式:早捆绑和晚捆绑;早捆绑是有编译器和连接器实现的,晚捆绑是由虚函数实现的,也就是晚捆绑只对虚函数起作用; 2、纯虚函数的实现virtual void 函数名()=0; =0标志着一个函数为纯虚函数,注意:没有实现纯虚函数的类不能进行实例化;因此将含有纯虚函数的类叫做抽象类; 3、函数的重载表现出函数的多态性,类的多态性是通过虚函数来实现的,可通过基类调用派生类中的同名原创 2015-07-23 12:12:05 · 418 阅读 · 0 评论