C++学习
记录总结C++类及对象特性
钢刚
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++学习 对象模型之 this指针
在 C++ 中,每一个对象都能通过this指针来访问自己的地址。this指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。this指针针对对象。对于非成员函数,静态函数和友元函数不能使用this指针,因为他们指针所有对象。this指针只针对某一个对象。多继承和多态的this指针调整...原创 2020-05-12 13:38:55 · 257 阅读 · 0 评论 -
C++学习 对象模型之虚基类,虚基类表,虚基类表指针
1.虚基类什么是虚基类,虚基类的作用是什么?首先虚基类是为了解决多继承产生的二义性问题,范例代码如下:#include "stdafx.h"#include <stdio.h>#include <iostream>#include <Windows.h>using namespace std;class Base {public: int ...原创 2020-04-26 15:08:33 · 918 阅读 · 0 评论 -
C++ 学习 对象模型之虚函数
虚函数在C++主要用于通过父类指针调用子类对象方法,从而达到实现多态机制。虚函数声明在类中,用virtual关键字修饰,虚函数在类的定义时就被放在了内存代码段,虚函数不在对象内存布局中。1.虚函数表与虚函数指针虚函数表可以看作一个函数指针数组,数组里面放着类里面的所有虚函数指针,当需要调用虚函数就从这个数组里面找。在生成对象时,编译器会产生一个虚函数指针来指向虚函数表,虚函数指针在32位系统占...原创 2020-04-21 21:35:57 · 301 阅读 · 0 评论 -
C++学习 对象模型之细谈成员初始化列表
直接上代码上面红色框起来的部分就是类成员初始化列表,成员初始化列表一般用在类的构造函数中,包括拷贝构造函数。对于这种用法,作为C++程序员一点都不陌生。下面从几个疑惑开始讲解,成员初始化列表:1.什么时候必须要使用初始化列表(1)初始化成员有引用以上代码编译器会报错,编译器不允许这样初始化,至于为什么不允许,后面再探讨,只能按照一下方式来初始化引用成员数据这样编译器...原创 2020-04-16 23:08:34 · 269 阅读 · 0 评论 -
C++学习 对象模型之默认拷贝构造函数
对于拷贝构造函数,我们并不陌生,就是将相同类型的一个对象拷贝到另一个对象。对于拷贝构造函数如果我们没有手动实现,在有些场景下当有对象拷贝操作时编译器会为类合成一个拷贝构造函数。具体有哪些场景下面一一介绍:class A{public:int a;};A a_obj;a_obj.a = 10;A b_obj = a_obj;cout<<" b_obj a=...原创 2020-04-15 19:34:26 · 354 阅读 · 0 评论 -
C++学习 对象模型之浅谈默认构造方法
相信对C++有过了解的人都知道,类的默认构造方法。就是当定义一个类时,有时编译器会给类添加一个默认的构造方法。那么疑问来了,什么情况下编译器会给类添加默认构造方法,这些构造方法具体做了什么操作?下面来探讨一下:1.类里面有类成员数据,且类成员有构造方法class A{public:A(){}int a;};class B{public: int b;...原创 2020-04-14 22:19:17 · 295 阅读 · 0 评论 -
C++ 学习 对象模型之类及对象内存模型
使用C++开发一年多,从今天开始系统性的总结下C++一些知识点,毕竟C++语言特性复杂而庞大,很难短时间全部掌握。1.类及对象首先类可以类比C语言的struct结构体,单纯的声明一个类A,如果A没有被实例化,那么A是不会占用内存空间。这里的类可以理解为一种特殊数据结构类型。再来谈谈对象,一个类实例化后就变成一个对象,且对象活跃在内存中。在这里的对象可以理解为C语言的变量。C语言中定义一个结...原创 2020-04-14 17:27:16 · 314 阅读 · 0 评论
分享