摘要: 1、指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如: int a=1;int *p=&a; int a=1;int &b=a; 上面定义了一个整形变量和一个指针变 阅读全文
posted @ 2018-07-19 11:53 我得去图书馆了 阅读(1036) 评论(0) 推荐(0) 编辑
摘要: 1、成员函数重载特征: a.相同的范围(在同一个类中); b.函数名字相同; c.参数不同(参数个数不同或者参数类型不同,但是返回值不同不能使重载); d.virtual关键字可有可无。 2、重写(覆盖)是指派生类函数覆盖基类函数,特征是: a.不同的范围,分别位于基类和派生类中 b.函数的名字相同 阅读全文
posted @ 2018-07-19 11:09 我得去图书馆了 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 1、纯虚函数 成员函数的形参后面写上=0,则成员函数为纯虚函数。 纯虚函数声明: virtual 函数类型 函数名 (参数表列) = 0; class Person { virtual void Display () = 0; // 纯虚函数 protected : string _name ; / 阅读全文
posted @ 2018-07-19 10:19 我得去图书馆了 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1、不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化。在构造函数完成之前,被构造的对象被认为“未完全生成”。当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数,那么此时派生类的构造函数并未执行,所调用的函数(派生类的虚函数)可能操作还没有被初始化的成员,将导致 阅读全文
posted @ 2018-07-19 09:57 我得去图书馆了 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 转自:https://blog.csdn.net/chgaowei/article/details/6427731 做了部分修改 为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采 阅读全文
posted @ 2018-07-19 00:27 我得去图书馆了 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 1、虚拟函数调用只需要“部分的”信息,即只需要知道函数接口,而不需要对象的具体类型。但是构建一个对象,却必须知道具体的类型信息。如果你调用一个虚拟构造函数,编译器怎么知道你想构建是继承树上的哪种类型呢?所以这在逻辑上是一个悖论。 2、除了虚表,还有虚表指针vptr,类实例需要靠他指向虚表,构造的时候 阅读全文
posted @ 2018-07-18 23:55 我得去图书馆了 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 1、两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的; 但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象,所 阅读全文
posted @ 2018-07-18 23:34 我得去图书馆了 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。 1、最基本的构造函数 2、拷贝构造函数 为什么拷贝构造函数 阅读全文
posted @ 2018-07-18 23:22 我得去图书馆了 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 1、被调用的3个时机: (1)直接初始化或拷贝初始化; (2)将一个对象作为一个实参传递,形参采用非指针或非引用的对象进行接收时(指针即指向了同一块空间,并未实现拷贝;而引用就是实参本身); (3)函数的返回值是以值传递的形式返回。 2、举例说明: 输出结果: 阅读全文
posted @ 2018-07-18 18:25 我得去图书馆了 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 1、C++模板 说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板。我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样显然不利于程序的扩充和维护。C++模板就应运而生。C++的模板提供了对逻辑结构相同的数据对象通用行为 阅读全文
posted @ 2018-07-18 16:24 我得去图书馆了 阅读(1201) 评论(0) 推荐(0) 编辑