上一页 1 2 3 4 5 6 7 ··· 13 下一页

2018年7月16日

C++ 深入理解 虚继承、多重继承和直接继承

摘要: 【摘要】 本文从5段代码实例出发,通过类中类的普通继承,类的虚继承,类的多重继承,多个虚函数类的普通继承、虚继承与多重继承,几个交叉概念,详细的阐释了继承、虚函数与虚继承的基本概念,深入剖析了继承于虚继承的区别于联系。 【Exp.001-虚继承】 解析:这里需要理解虚继承基类对派生类的空间大小的影响 阅读全文

posted @ 2018-07-16 10:04 矮油~ 阅读(445) 评论(0) 推荐(0)

指针几个字节

摘要: 指针即为地址,所以本人认为,指针几个字节跟语言无关,而是跟系统的寻址能力有关,譬如以前是16为地址,指针即为2个字节,现在一般是32位系统,所以是4个字节,以后64位,则就为8个字节 阅读全文

posted @ 2018-07-16 09:39 矮油~ 阅读(449) 评论(0) 推荐(0)

2018年7月13日

C++类有继承时,析构函数必须为虚函数

摘要: C++类有继承时,析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内在泄漏的问题。 假设我们有这样一种继承关系: 如果我们以这种方式创建对象: 不管析构函数是否是虚函数(即是否加virtual关键词),delete时基类和子类都会被释放; 如果我们以这种方式创建对象: 若析构函数是虚函数(即加 阅读全文

posted @ 2018-07-13 09:39 矮油~ 阅读(3653) 评论(0) 推荐(1)

C++继承中关于子类构造函数的写法

摘要: 构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数 阅读全文

posted @ 2018-07-13 09:36 矮油~ 阅读(868) 评论(0) 推荐(0)

2018年7月12日

C++成员函数在内存中的存储方式

摘要: 用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如下图所示。 能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用 阅读全文

posted @ 2018-07-12 17:36 矮油~ 阅读(10934) 评论(0) 推荐(6)

C++重写(覆盖)、重载、重定义、

摘要: 总结: 重写(覆盖)override 是指派生类函数重写(覆盖)基类函数 不同的范围,分别位于基类和派生类中 函数的名字相同 参数相同 基类函数必须有virtual关键字 重载overload 成员函数 形同的范围(在同一个类中) 函数的名字相同 virtual关键字可有可无 重定义(隐藏)rede 阅读全文

posted @ 2018-07-12 17:14 矮油~ 阅读(386) 评论(0) 推荐(0)

C++中的覆盖与隐藏(详细讲解)

摘要: C++类中覆盖与隐藏一直是一个容易理解出错的地方,接下来我就详细讲解一下区别在何处 覆盖指的是子类覆盖父类函数(被覆盖),特征是: 1.分别位于子类和父类中 2.函数名字与参数都相同 3.父类的函数是虚函数(virtual) 隐藏指的是子类隐藏了父类的函数(还存在),具有以下特征: 子类的函数与父类 阅读全文

posted @ 2018-07-12 15:53 矮油~ 阅读(1533) 评论(0) 推荐(0)

c++中被忽视的隐藏

摘要: 稍微懂得点oop的人都知道重载,那是多态性的重要体现!可是在c++中你能分清成员函数的重载、覆盖吗?这个好像也不难,重载存在与同一个类中,而覆盖存在于派生类于基类中!可是如果再加上隐藏呢?说实话,以前我从来没有听说过这个概念!也不知道自己曾经捏造的程序,出了多少问题!看看林锐在《高质量 c++编程指 阅读全文

posted @ 2018-07-12 15:50 矮油~ 阅读(1746) 评论(0) 推荐(0)

C++对象的内存分布和虚函数表

摘要: c++中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。 1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。 2.静态数据成员被提取出来放在程序的静态数据区内,为该类所有对象共享,因此只存在一份。 3.静态和非静态成员函数最终都被提取出来放在程序的代码段中并为 阅读全文

posted @ 2018-07-12 14:45 矮油~ 阅读(1230) 评论(0) 推荐(0)

C++ explicit关键字详解

摘要: 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). 那么显示声明的构造函数和隐式声明的有什么区别呢? 我们 阅读全文

posted @ 2018-07-12 14:21 矮油~ 阅读(124764) 评论(0) 推荐(53)

上一页 1 2 3 4 5 6 7 ··· 13 下一页

导航