- 博客(9)
- 收藏
- 关注
原创 派生类中this指针的地址变化
派生类中this指针的地址变化那么谈本次内容之前,我们先来看一段代码#include <iostream>using namespace std;class Base1{public: Base1() { cout << "Base1::CTOR():" << static_cast<const void *>(this) << endl; } void func1() { cout << "Base1::f
2020-09-12 10:24:52
307
原创 类中所占的字节是怎么算的
类中所占的字节是怎么算的那么谈本次内容之前,我们先来看一个问题“一个空类所占字节是多少?”class EmptyClass{};大家猜一猜这个类占不占字节呢,看上去它什么都没有那么是不是可以认为它是0字节呢,其实不然我们可以用sizeof看一下cout<<sizeof(EmptyClass);// 输出:1为什么是输出1,原因是因为它需要一个起始地址,哪怕是空类我们也可以实例化的,实例化后它必然要占有一个地址既然地址属于这个对象那么它必然最少要占有一个字节的。那么我们再来猜
2020-09-09 11:18:27
1743
1
原创 RAII(资源管理)注意事项
RAIL(资源管理)注意事项在C++中,我们往往需要比其他语言多份出一些精力用来管理资源(内存),我们可能记得一个规律,有指针就要有释放,百密一疏嘛,为了我们以后能少走一些弯路,我们需要使用智能指针来进行解决这个问题了,智能指针的话它有一个好处就是它替我们进行释放(析构函数中帮我们释放内存),这个地方请看我的析构函数的总结!首先我们想看一个案例:#include <iostream&g...
2019-09-29 15:01:11
344
原创 Memory allocation详解
Memory allocation详解在C++中,我们可以很方便的动态分配内存,那么动态分配后的初始化顺序和释放内存时候的析构顺序究竟是怎样的呢,我们来回顾一下首先我们想看一个案例:首先假设我们有一个User类class User{public: User(std::string str,int i):name(str),val(i){data=new char[100];} ~Us...
2019-09-29 14:57:03
3959
2
原创 explicit修饰符详解
explicit修饰符详解在C++中,如果一个类只有一个参数的构造函数,C++允许一种特殊的声明类变量的方式,在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象。如下例所示:#include<iostream>using namespace std;class Test{p...
2019-09-29 14:51:52
1467
原创 classCopy and operator=详解
classCopy and operator=详解在类中我们常常有一些可以不用写,就可以使用的函数,比如默认的构造函数,默认的copy构造,还有默认的操作符重载= 如下例所示:#include<iostream>class Test{/*这是一个空类*/};int main(int argc,char**argv){ Test test1; //suc...
2019-09-29 14:48:56
249
原创 C++11程序设计要点总结-虚函数和纯虚函数
C++程序设计要点总结-今天我们来讲一下虚函数和纯虚函数,那么这两个是什么意思呢,和我们OOP编程又有什么关系呢,别急马上就告诉你,那么讲之前我需要让大家理解一下什么是接口,接口用官方话来说就是:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。用白话文来说声明一个方法,在继承他的类中把他实现出来...
2019-01-05 00:10:13
749
原创 C++11程序设计要点总结-虚继承与继承详解
C++程序设计要点总结-在编程的过程中呢我们总会遇到一些各种各样的问题,就比如在写一个类的时候,我们有时候可以继承一下和他有共同特点的类,但是为什么要写虚继承呢,虚继承和继承有什么区别呢,请听我慢慢来讲,什么时候要用继承什么时候要用虚继承呢?既然要讲虚继承和继承的区别,那么我们首先要写两个案例呢,那么我先写一个继承案例给你们看看把!/*基类*/ /*派生类*/class Ba...
2019-01-05 00:03:01
307
原创 C++11程序设计要点总结-模板机制详解
C++程序设计要点总结-在编程的过程中呢我们总会遇到一些各种各样的问题,就比如在写方法的时候,我们一个同样的方法要写好几种类型的呢,这让我们很伤脑筋,但是呢C++有一个强大的功能就是模板机制,这个模板机制就可以让我们少写很多同样的代码,那么什么是模板呢,。我们举一个小例子吧!比如我们要去写交换函数,那么我们正常的写法是void swap(int&amp;a,int&amp;b){ ...
2019-01-04 23:33:14
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人