Moralin_
码龄7年
关注
提问 私信
  • 博客:63,474
    63,474
    总访问量
  • 64
    原创
  • 2,275,515
    排名
  • 18
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2017-11-11
博客简介:

Moralin_的博客

查看详细资料
个人成就
  • 获得38次点赞
  • 内容获得14次评论
  • 获得81次收藏
创作历程
  • 53篇
    2018年
  • 12篇
    2017年
成就勋章
TA的专栏
  • 目标
    1篇
  • 全局变量
    1篇
  • c
    6篇
  • Linux
    3篇
  • C++
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【C++】运算符重载

运算符重载的方法是定义一个重载运算符函数,在需要执行被重载的运算符时,系统自动调用该函数。格式:函数类型 operator 运算符名称(形参列表)运算符重载的规则C++不允许用户自己定义新的运算符,只能对已有的运算符进行重载。 C++不能重载的运算符只有五个,其他的都可以重载 .(成员访问运算符) .*(成员指针访问运算符) ::(作用域解析符) sizeof(长度运算...
原创
发布博客 2018.09.05 ·
226 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

【C++】解析this指针

一个类可以有多个对象,怎么能保证引用的是所指定的对象的数据成员呢?在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,即this。它是指向本类对象的一个指针,他的值是当前被调用的成员函数所在对象的起始地址。举例:#include<iostream> ...
原创
发布博客 2018.09.05 ·
308 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【C++】虚继承如何解决了菱形继承的二义性问题

从代码分析:#include<iostream>using namespace std;class A{public: int _a;};class B :virtual public A{public: int _b;};class C :virtual public A{public: int _c;};class D :public B, p...
原创
发布博客 2018.08.12 ·
908 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【C++】继承切片问题与类型转换

在下面的代码中,student继承了person,将子类对象赋给父类对象、发生了切片。上面代码中的赋值不存在类型转换,这里讨论一下类型转换问题:为什么上面赋值编译不通过?因为存在类型转换,i需要生成临时变量,在赋值给r2引用,而临时变量存在常(const)性,需要在前面加const。什么情况下可以发生切片?子类对象可以赋值给父类对象/父类指针/父类的引用。虽...
原创
发布博客 2018.08.12 ·
671 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【C++】new/delete底层原理和new[]/delete[]

malloc和new的区别他们都是动态管理内存的入口。 malloc/free是C/C++标准库函数,new/delete是C++操作符。 malloc只是动态开空间释放空间,而new动态开空间并调用构造函数(初始化)和析构函数(清理) malloc/free需要手动计算类型大小且返回值为void*,new/delete可自己计算类型,返回对应类型的指针。new底层原理:开空间。调...
原创
发布博客 2018.08.11 ·
915 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

变量存在的内存空间问题

例:static int a = 10;int b = 10;void Func(){ static int c = 10; int d = 10; char* p1 = "hello"; char p2[] = "hello"; int* p3 = (int*)malloc(4);}问题:strlen(p1):5 strlen(p2):5 sizeof(p1...
原创
发布博客 2018.08.11 ·
279 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】const+内联+静态成员+友元

const修饰成员函数在成员函数后面加const,const修饰this指针所指向的对象,保证这个const成员函数的对象在函数内不会被改变。注意点:const对象对象不可以调用非const成员函数 非const对象可以调用const成员函数 const成员函数内不可以调用其他的非const成员函数 非const成员函数内可以调用其他的const成员函数operator+可...
原创
发布博客 2018.08.11 ·
329 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【C++】类型萃取

为什么要用到类型萃取?在C++中,想要对数据进行拷贝的话,通常有两种情况内置类型 自定义类型对于内置类型,我们可以使用memmove或memcpy来进行拷贝而对于自定义类型,我们需要使用赋值的方式来进行拷贝示例代码如下:struct TrueType{ bool Get() { return true; }};struct FalseType{ boo...
原创
发布博客 2018.08.08 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】实现顺序表模板类

#include<iostream>#include<string.h>using namespace std;template<class T>class SeqList{ public: SeqList(); SeqList(const SeqList<T>& seq); SeqList& o...
原创
发布博客 2018.08.08 ·
582 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【C++】多态

多态:即多种形态,调不同的函数,完成不同的功能。多态的条件:调用的函数必须是虚函数的重写 必须是父类的指针或引用多态分为:静态多态:就是重载,在编译时决议。 动态多态:通过继承重写基类的虚函数实现的多态,在运行时决议。 多态原理:如果构成了多态,则与对象有关,与类型无关。什么是斜变?派生类重写基类的虚函数实现多态中,要求函数名,参数列表,返回值完全相同。而斜...
原创
发布博客 2018.07.29 ·
184 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】继承基础知识

继承方式和访问限定符的关系三种继承方式:公有继承 私有继承 保护继承关系:若基类的成员函数为私有,则派生类对基类的私有成员是不可见的,其他的标准为选范围小的为最终访问限定。保护成员限定符:一些基类成员不想被基类的对象直接访问,但需要在派生类中才能访问,就定义为保护成员。保护成员限定符是因继承才出现的。理解隐藏隐藏是指派生类的函数屏蔽了与其同名的基类函数。规则如下:如果...
原创
发布博客 2018.07.29 ·
233 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】引用计数写时拷贝

为什么要引入引用计数写时拷贝?使用浅拷贝不浪费内存空间却容易发生内存泄漏问题,使用深拷贝不会发生内存泄漏但是会不断开辟新的空间,内存利用率低。因此结合深浅拷贝的优点产生了写时拷贝。在String类中添加新成员变量_pcount来计算指向同一段内存空间的指针的数目,若果要修改成员变量,当指针数目为小于等于1时就可以释放空间,大于1则另开辟空间来保存新的数据。代码如下:#incl...
原创
发布博客 2018.07.18 ·
297 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【C++】深浅拷贝实现String类

什么是深浅拷贝?定义字符串char* str1="hello";现在定义一个字符串char* str2和str1的数据相同,这种情况分两种;str1和str2数据和空间都相同,即str2指向str1 的地址空间。 str2另开辟空间,再将str1的数据拷贝给str2,即str1和str2数据相同,指向的地址不同。第一种情况叫做浅拷贝,第二种情况叫做深拷贝而在C++中,使用浅拷贝...
原创
发布博客 2018.07.18 ·
304 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】实现data类

//#include<stdio.h>#include<iostream>#include<assert.h>using namespace std;class Date{public: Date(int year = 1900, int month = 1, int day = 1)//全缺省参数构造函数 :_year(year) , _...
原创
发布博客 2018.07.10 ·
2125 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【C++】赋值运算符重载的返回值分析

转载: https://blog.csdn.net/Always__/article/details/50532323其实对于重载赋值运算符,返回值是引用或者不是都行,代码都可以运行,之所以用引用是为了提高代码效率,为什么引用就会提高代码效率呢?对于返回值是CMystring时(非引用)。返回时,会自动生成一个临时对象来保存返回的这个内容,然后通过拷贝构造函数返回给调用这个函数的对象(*this)...
转载
发布博客 2018.07.03 ·
3152 阅读 ·
6 点赞 ·
0 评论 ·
7 收藏

【C++】构造函数、析构函数、拷贝构造函数

构造函数概念:成员变量为私有的,需要用一个公有函数来对他们进行初始化。同时这个函数有且仅在定义对象时自动执行一次。特点:函数名和类名相同无返回值对象构造(对象实例化)时系统自动调用对应的构造函数。构造函数可以重载构造函数可以在类中定义,也可以在类外,在类外定义需要指定类域。如果类中没有给出构造函数,C++编译器会自动生成一个缺省的构造函数。但是只要我们自己定义了缺省的构造函数,编译器就不会再生成。...
原创
发布博客 2018.07.03 ·
589 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

【C++】类和对象

什么是面向对象?面向对象程序设计(OOP):对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装在其中,以提高软件的重用性,灵活性和扩展性。C++不是纯面向对象语言,而是基于面向对象的语言。面向对象的三大特性:封装,继承,多态类的大小?类的大小取决于类中所有成员变量的大小之和,也遵循内存对其原则。为什么要内存对齐?1.平台问题(移植原因)不是所有的硬件平台都能访问任意地址上的任意数据的;...
原创
发布博客 2018.06.30 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】引用和指针

引用概念:引用不是定义一个新的变量。而是给一个已经定义的变量起一个别名。因为引用不需要额外开辟空间。用法:类型 &引用变量名=已定义过的变量名void TestReference2 (){    int d1 = 4;    const int & d2 = d1;    d1 = 5; // d1改变 d2的值也会改变。    //d2 = 6; // 不能给常量(不能...
原创
发布博客 2018.06.30 ·
192 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】C++入门介绍

C++与C:C++是C的增强版,C几乎是C++的一个子集,所以C语言支持的语法在C++基本都支持并需要使用。为什么C++支持重载,C语言不支持?1.函数重载:在同一作用域类,一组函数的函数名相同,参数列表不同(个数/类型不同),与返回值无关。不仅函数可以重载,运算符也可以重载。注意:main函数不能重载,因为程序的入口只有一个。2.翻译过程一般分为: 预处理—-编译——汇编——链接 预处理:展开头...
原创
发布博客 2018.06.30 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【总结】进程信号

kill -l:查看所有进程号:
原创
发布博客 2018.06.19 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多