随笔分类 -  C++学习之路

C++学习之路(十一):C++的初始化列表
摘要:结论: 1、在C++中,成员变量的初始化顺序与变量在类型中的声明顺序相同,而与他们在构造函数的初始化列表中的顺序无关。 2、构造函数分为两个阶段执行:1)初始化阶段;2)普通的计算阶段,表现为赋值操作。 3、内置类型的成员不进行隐式初始化,所以对这些成员是进行初始化还是赋值无关紧要。但对于类类型的数 阅读全文

posted @ 2018-06-02 15:22 chenjx_ucs 阅读(508) 评论(0) 推荐(0)

C++学习之路(十):虚继承引入的执行效率
摘要:这篇文章不知道取啥名字了,暂且这样叫,直接看场景就明白了。节选自《深度探索C++对象模型》 Point3d origin, *pt = &origin; (1)origin.x = 0; (2)pt->x = 0 上述两种代码执行结果是一样的,但是在执行效率上是否存在差异? (1)如果Point3d 阅读全文

posted @ 2018-05-04 12:02 chenjx_ucs 阅读(233) 评论(0) 推荐(0)

C++学习之路(九):从菱形继承引入的对象模型
摘要:一、单继承 普通的单继承关系,类的大小是由其虚表指针和非静态成员函数大小决定。故上述sizeof(A)的大小为4。 类B公有继承A,对象模型如下: 类A的非静态成员(4字节) 类B的非静态成员(4字节) 故类B的大小为8字节。 二、多继承 普通的多继承关系,这里和上述单继承类似。直接给出类C的对象模 阅读全文

posted @ 2018-05-04 10:53 chenjx_ucs 阅读(515) 评论(0) 推荐(0)

C++学习之路(七):以const,enum,inline替换#define
摘要:这篇博文主要是编程中的一些问题和技巧。如题目所示,这些关键字的作用不再进行描述。直接描述功能和实例代码。 首先,在头文件中对类进行定义,是不会为类分配内存空间的,在这一点上类定义可以和普通变量类型的声明匹配,这里需要理解的概念就是“声明”和“定义”,在此不再赘述。 既然类定义不会被分配内存,那显然, 阅读全文

posted @ 2018-04-10 14:26 chenjx_ucs 阅读(229) 评论(0) 推荐(0)

C++学习之路(八):关于C++提供的强制类型转换
摘要:C语言中提供了旧式的强制类型转换方法。比如: int a =1; char *p = (char *)&a; 上述将a的地址单元强制转换为char类型的指针。这里暂且不说上述转换结果是否合理,但上述这样的强制类型转换,如果转换过程出现问题,对于问题的追踪与排查也比较困难。 对于C++而言,提供了较为 阅读全文

posted @ 2018-04-09 12:20 chenjx_ucs 阅读(258) 评论(0) 推荐(0)

C++学习之路(六):实现一个String类
摘要:直接贴代码吧,这段时间准备面试也正好练习了一下。 阅读全文

posted @ 2018-03-20 22:12 chenjx_ucs 阅读(188) 评论(0) 推荐(0)

C++学习之路(四):线程安全的单例模式
摘要:(一)简单介绍 单例模式分为两种类型:懒汉模式和饿汉模式。 懒汉模式:在实际类对象被调用时才会产生一个新的类实例,并在之后返回这个实例。多线程环境下,多线程可能会同时调用接口函数创建新的实例,为了防止这种并发情况,需要采用锁机制来保证线程安全性,但由于多线程抢占互斥锁,可能会导致系统的性能瓶颈。 饿 阅读全文

posted @ 2018-03-19 16:02 chenjx_ucs 阅读(317) 评论(0) 推荐(0)

C++学习之路(三):volatile关键字
摘要:volatile是c++中的一个关键字。用volatile修饰的变量,具有三个性质:易变性 (一)易变性: 由于编译器对代码执行的优化,两条赋值语句,下一条语句可能会直接从上一条语句使用的寄存器中取得变量内容,通过volatile修饰变量,使得变量将被写会内存,对变量的访问也会直接从内存中读取,而不 阅读全文

posted @ 2018-03-19 14:03 chenjx_ucs 阅读(648) 评论(0) 推荐(0)

C++学习之路(五):复制构造函数与赋值运算符重载
摘要:之前没有细想过两者的区别,今天对此进行简要记录,后续完善补充。 复制构造函数是在类对象被创建时调用的,但是赋值运算符是被已经存在的对象调用完成赋值操作。 复制构造函数只在对象实例化时才被调用,即在复制构造函数调用期间,这个对象处于未决状态(直到复制构造函数被成功调用),另外复制构造函数没有返回值。 阅读全文

posted @ 2018-03-18 20:42 chenjx_ucs 阅读(227) 评论(0) 推荐(0)

C++学习之路(二):引用
摘要:(1)引用是变量的别名 引用的基本定义格式:类型 &引用名 = 变量名 例如:int a = 1; int &b = a,这里b是a的别名,b与a都指向了同一块内存单元。 对于引用而言,其底层实现是通过const指针的方式实现的。相较于c,引用是c++引入的一种更为方便的表示方式。 引用不是一种变量 阅读全文

posted @ 2018-03-15 14:15 chenjx_ucs 阅读(174) 评论(0) 推荐(0)

C++学习之路(一):const与define,结构体对齐,new/delete
摘要:前言:针对C++ Primer和Effective C++两本书,以及技术博客与实验测试,本系列主要是针对C++进行系统化学习,记录学习中遇到的问题和经验。 (一)const与define 关于const与define的用法与比较,可以详见我之前的这篇文章,在这里就不再赘述了。 (二)结构体对齐 简 阅读全文

posted @ 2018-03-15 11:30 chenjx_ucs 阅读(290) 评论(0) 推荐(0)

导航