![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
liuzker
热爱
展开
-
类和对象的六个默认成员函数之this指针与构造函数
类和对象的六个默认成员函数this指针:在C++中的成员函数也是按照C类似的方式处理的,即:成员函数实际上也有一个指针时隐藏的,指向了调用函数的对象本身,这个指针就是this指针this指针特性: this指针的类型:类类型* constthis指针并不是对象本身的一部分,不影响sizeof的结果 this指针的作用于在成员函数的内部 this指针时类成员哈数的第一个默认隐...原创 2018-07-28 16:02:06 · 255 阅读 · 0 评论 -
关于动态库的的编写与使用过程
动态库相关在实习期间做的事情是对组内项目编译的辅助工具编写,期间涉及到很多关于动态库相关的一些内容,现在将动态库相关的一些知识来整理和重新学习一下,目前只考虑Linux环境什么是动态库说动态库之前要来看一下什么是"库",库是一系列可复用,成熟的,已经写好的代码,动态库是使用非常多的一种技术,动态库在程序运行的时候被载入(静态库是编译时),不同的程序调用相同的库的时候,内存中只存在一方该sha...原创 2019-05-12 15:02:08 · 669 阅读 · 0 评论 -
浅谈C++多态
面向对象的程序设计都有封装,继承和多态三大特性,前两个特性在之前的博客中已经提到,这篇主要讲关于C++多态问题。何为多态?简单的说,就是一句话:允许将子类类型的指针(引用)赋值给父类类型的指针(引用)。举个例子,当我们在定义两个类,一个Person类作为父类,在乘坐高铁时购买二等座,Boss是Person的派生类,乘车购买一等座,而且他们的购票成员函数名字相同,如以下代码:cla...原创 2018-09-21 21:24:38 · 158 阅读 · 0 评论 -
菱形继承问题以及虚拟继承探究
在前边的博客中我提到过菱形继承的问题,也给出了几种解决菱形继承的方法https://blog.csdn.net/liu_zhen_kai/article/details/81590467但是给的方法没有说明原因,这篇博客将会从内存存储模型角度,以及虚继承为什么可以使解决菱形继承的问题进行阐述与证明。 所谓菱形继承就是指类B,类C同时继承A,且D同时继承B,C,在A具有成员函数的情况下,...原创 2018-09-21 20:33:38 · 161 阅读 · 0 评论 -
探究C++多态实现原理
探究C++多态实现原理在之前的博客中讲到了如何使用C++多态的性质,实现面对对象的程序设计。在这一篇文章中将会从多态的实现原理,_vfptr 以及多态类的内存构建模型上来探究C++多态的实现过程。从以下代码来讨论:#include <iostream>using namespace std;typedef void(*VIRTUALL)();class Person...原创 2018-09-24 15:37:55 · 219 阅读 · 0 评论 -
C++菱形继承,二义性问题以及解决方法
C++菱形继承,二义性问题1.菱形继承(路径二义性问题)在实现继承的过程中,若派生类B,C同时继承基类A,派生类D同时继承类B,C这样对于基类A中的成员相当于在D被继承过两次,A,B,C,D整体关系构建成为一个菱形框图,这样就是C++中的菱形继承问题代码实现#include <iostream>using namespace std;class A{publ...原创 2018-08-12 11:07:43 · 3340 阅读 · 0 评论 -
C++继承派生类
C++中继承与派生类在C++实现面向对象的编程时,在创建新的类时,可以使用已有的存在的类进行派生,或者称之为对于基础类的继承在C++写代码的过程中,定义被继承的类为 基类,为继承基类的新类叫做 派生类 在实现派生类的时候对于基类有三种继承方式 : public(公有继承),private(私有继承),protected(保护继承) 它们之间的实现关系如下图 : 继承语...原创 2018-08-11 19:27:49 · 459 阅读 · 0 评论 -
在静态成员函数中访问非静态成员变量
在静态成员函数中访问非静态成员变量在正常情况下一个static修饰的静态成员函数是无法对非静态成员变量进行访问与操作的 : #include &lt;iostream&gt;using namespace std;class Date{public : Date(int y = 1998, int m = 2, int d = 15) :year(...原创 2018-07-29 19:18:05 · 13198 阅读 · 1 评论 -
C++中类中的静态变量成员与静态成员函数
C++中类中的静态变量成员与静态成员函数声明为static的类成员(成员数据或成员函数)称为类的静态成员特性 : 静态成员为所有的类对象所共享,不属于某个具体的事例 静态成员即可用类名::静态成员或者对象.静态成员所访问 静态成员变量必须在类外所定义,定义时不能添加static关键字 静态成员函数没有默认的this指针,因为它里面不能使用任何非静态成员 静态成员和普通的类成员...原创 2018-07-29 16:06:16 · 3804 阅读 · 0 评论 -
运算符重载总结
运算符重载1.重载的概念C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载...原创 2018-07-29 14:04:46 · 414 阅读 · 0 评论 -
类和对象的六个默认成员函数之拷贝构造与析构函数
类和对象的六个默认成员函数之拷贝构造与析构函数拷贝构造函数1.概念 :只有单个形参,而且该形参是对本类类类型的引用(常用const修饰),这样的构造函数称为拷贝构造函数。拷贝构造函数是特殊的构造函数,创建对象时用已经存在的同类型对象进行初始化,由编译器自动调用 举例:#include <iostream>using namespace std;class ...原创 2018-07-29 11:37:56 · 278 阅读 · 0 评论 -
Json在工作中的使用总结
Jsoncpp的使用原创 2019-06-28 01:35:21 · 211 阅读 · 0 评论