![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 62
weiaiyisheng_ljj
这个作者很懒,什么都没留下…
展开
-
类中的四个默认成员函数+运算符重载
1:整理类和对象的基础知识,如类的定义,访问限定符,面向对象封装性,对象的大小计算等等。 类 = 成员对象+成员方法,成员对象 = 数据,成员方法 = 函数,函数可以在类外部定义,类中声明使用。访问限定符 :①public ②private ③protect public: 可以从外部访问类中的成员对象和成员方法。private,protect:成员不能从类外部直接访问。没有限原创 2017-06-25 16:13:45 · 326 阅读 · 0 评论 -
浅析c++函数重载的原理
一. 函数重载的概念在C语言中,一个函数不能与另一个函数重名,而在C++中,一个函数的函数名相同的,只要参数列表与另一个函数的参数列表不完全相同,C++这一特点就是所谓函数的重载现象。 同一个名字因为参数列表不同,展现了不同的结果,也叫静多态二.函数重载的原则 ①函数名相同,函数参数列表不同(类型、个数、顺序) ②匹配原则1:严格匹配,找到再调用 ③匹配原则2:通过隐式类型转换寻求原创 2018-01-22 21:51:22 · 221 阅读 · 0 评论 -
vector map set的使用
一、vector 向量容器(1)头文件 #include(2)创建vector对象, vector vec;vector的元素不仅仅可以是int, double, string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。(3)基本操作:使用下标访问元素,和数组一样下标从0开始原创 2017-11-08 15:58:04 · 194 阅读 · 0 评论 -
简单实现日期计算器的基本功能
#include<iostream>using namespace std;class Date{ friend ostream& operator<<(ostream& out, const Date& d); friend istream& operator>>(istream& cin, Date& d);public: //构造函数 Date(int原创 2017-09-21 13:43:40 · 510 阅读 · 0 评论 -
模板的类型萃取
功能 类型萃取,在STL中用到的比较多,用于判断一个变量是否为POD类型. 简述来说可以用来判断出某个变量是内置类型还是自定义类型. 通过类型萃取,萃取到变量类型,对不同变量进行不同处理,可以提升程序效率(下面有具体讲解). 应用场景 比如我们实现顺序表,在对顺序表进行扩容时,就靠重新开辟内存、拷贝对象. 拷贝对象时,就有两种情况:一种是类型,比如int char…;还有一种是自定原创 2017-08-05 23:32:49 · 434 阅读 · 0 评论 -
多态&多态对象模型
一:什么是c++中的多态引言多态(Polymorphism)、封装(Encapsulation)和继承(Inheritance)是面向对象思想的“三大特征”,此处俗称“面向对象的三板斧”,而多态是三板斧中最厉害的杀招,是面向对象最精微的内功。定义 所谓多态,其实就是多种形态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 简单地概括为“一个接口,多种方法”。类别 (1)原创 2017-07-26 18:51:08 · 361 阅读 · 0 评论 -
模板不支持分离编译------原因以及解决方法
为什么模板不支持分离编译? 这里讲解模版不支持分离编译之前,先要讲一下正常一个可执行程序在编译器中具体的几个步骤才能更好的理解模版为什么不支持分离编译。main.cpp#include<iostream>#include"test.h"using namespace std;int main(){ fun(); return 0;}test.cpp#include原创 2017-08-04 18:25:06 · 687 阅读 · 0 评论 -
单链表
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 具体实现如下#pragma once#include<iostream>#include<assert.h>using namespace std;t原创 2017-07-23 13:40:45 · 187 阅读 · 0 评论 -
双向链表
单链表enter link description here 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 实现如下#pragma once#include<iostream>#include<assert.h>using namespace std;type原创 2017-07-23 13:46:33 · 187 阅读 · 0 评论 -
顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 ——————————————-具体实现如下———————————————#include<iostream>#include<assert.h>using namespace st原创 2017-07-23 13:37:10 · 227 阅读 · 0 评论 -
1:总结并剖析malloc/free和new/delete之间关系和差异。 2:剖析new/delete、new[]/delete[]到底做了些什么事情。 3:实现NEW_ARRAY/DE
1:总结并剖析malloc/free和new/delete之间关系和差异。2:剖析new/delete、new[]/delete[]到底做了些什么事情。3:实现NEW_ARRAY/DELETE_ARRAY宏,模拟new[]/delete[]申请和释放数组。malloc/free和new/delete之间关系和差异首先先介绍一下malloc/free函数和new/delete操作符:malloc/fr原创 2017-07-17 23:06:12 · 412 阅读 · 2 评论 -
1:分析菱形继承的问题。 2:剖析虚继承是怎么解决二义性和数据冗余的。
1:分析菱形继承的问题。 菱形继承存在二义性和数据冗余具体如下图 具体的二义性如下class Person{public: string _name; //姓名};class Student:public Person{protected: int _num; //学号};class Teacher: public Person{protected:原创 2017-07-21 00:46:24 · 311 阅读 · 0 评论 -
模拟实现string类,以及增删查改各种功能
#include#includeusing namespace std;class String{public: //构造函数 String(char *pstr = "") :_str(new char[strlen(pstr) + 1]) , _size( strlen(pstr)) , _capacity(_size) { strcpy(_str, pstr原创 2017-07-20 19:14:46 · 281 阅读 · 0 评论 -
C++基础知识点
1.命名空间 2.C++基本的输入输出流(简单介绍一下就行) 3.重载(C++为什么支持重载?) 4.C++缺省参数 5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)命名空间 第一题:命名空间//1,可以嵌套//int a = 10;//namespace AA//{// int a = 0;//}//namespace BB//{原创 2017-06-22 17:20:43 · 167 阅读 · 0 评论 -
C++ 容易忽视的知识点
1 const成员函数 两个成员函数如果只是常量性不同,可以被重载class a{ void fun()const void fun()}2018-5-31 22:52原创 2018-05-31 22:54:44 · 185 阅读 · 0 评论