C++
文章平均质量分 84
ytt999
遇到问题,解决问题
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++中的 extern 和extern“C“关键字详解(通俗易懂)
当在工作中,遇到cpp程序链接.so/.a库的时候,编译出现未定义的情况,extern C或许会派上用场原创 2024-05-31 15:27:05 · 7009 阅读 · 2 评论 -
C++升级知识点总结1
1、for功能增强//功能一for(int i =0;i<3;i++){cout << i << endl;}//功能二int array[3] = {1,5,6};for(int temp : array ) //foreach用法直接数组内容依次传给temp{cout << temp << endl;}2、auto关键字(1)C++中auto:类型推导 。(2)C语言中auto修饰的变量称之为自动变量(生命周期)。in原创 2020-05-27 15:35:22 · 309 阅读 · 0 评论 -
C++智能指针
1、智能指针的原理程序通常通过堆来存储动态分配的对象(程序运行时的对象),当动态对象不在使用时,需要对他们进行销毁。动态内存的管理是通过new delete来实现的。new运算符:在动态内存中为对象分配一块空间并返回一个指向对象的指针int *p=new(2);//*p初始化为2int *p1=new[100]; //申请100个单位的内存空间delete运算符:指向一个动态对象的指针,摧毁对象并释放与其相关联的内存。在delete之后,指针变成了悬空指针(指向一块曾经保存数据对象但现在已经无效原创 2020-05-18 22:19:02 · 164 阅读 · 0 评论 -
C++引用
前言:引用可以看作是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。引用比指针更加方便和易用,但是其实引用只是对指针进行了简单的封装,他的底层依然是通过指针来实现的。一、为什么使用引用?参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。对于char、int等基本类型的数据,他们占用的内存仅仅是几个字节,对他们进行拷贝非常快,而数组、结构体、对象是一系列数据的集合,对他们频繁的内存拷贝可能会消耗很多时间,拖慢执行效率。引用的使用格式:和指针很类似,type &name=da原创 2020-05-18 21:42:35 · 198 阅读 · 0 评论 -
C++多态(类型转化dynamic_cast、查看类型typeid)
dynamic_cast原创 2020-05-09 14:56:18 · 221 阅读 · 0 评论 -
C++多态知识点(虚函数、纯虚函数)
前言:派生类可以继承基类的成员函数,都是无法重载基类的成员函数!当派生类中存在和基类相同的成员函数时,基类的成员函数就会被覆盖!当派生类存在与基类相同的成员函数,我们称之为函数重定义,也就是在派生类中重新定义基类中具有相同名称的成员函数。1、多态的使用根据类型兼容性原则,基类指针可以直接指向派生类对象,看下面的例子:#include<iostream>using names...原创 2020-05-06 23:15:14 · 460 阅读 · 0 评论 -
C++继承——多继承(二义性)
前言:一个派生类只有一个基类,叫做单继承一个派生类可以有两个或多个基类,叫做多继承1、多继承class D:public A,public B,public C{public: //类D中新增的成员};2、多继承中构造函数和析构函数在多继承形式下的构造函数和单继承形式基本相同,就是在派生类的构造函数的初始化列表中调用多个基类的构造函数class D:public A,publi...原创 2020-05-06 22:19:56 · 2388 阅读 · 1 评论 -
C++类型转换详解
1、C语言的隐式转换和显式转换 double a=1.234; int b=(int)a;//强制转换2、C++的类型转换运算符static_cast(expr):相关类型转换,例如整型、实型子类转父类void *与其他类型转换//static_cast<T>(expr)//相关类型转换double b=1.23;int a=static_cast<i...原创 2020-03-26 19:24:02 · 565 阅读 · 0 评论 -
C++ 基础——string、vector、类型转换
stringvector类型转换一、C语言的隐式转换和显示转换显示转换——就是强制转换,在被转换的表达式前加(类型)隐式转换——就是不需要加强制转换,系统会自动做这个操作二、C++的类型转换运算符==1、static_cast<T>(expr)似于C语言的强制转换,保证代码的安全性和正确性可用于以下几种情况1)相关类型转换:例如整型、实型double b=1.23...原创 2020-03-22 22:16:12 · 3617 阅读 · 0 评论 -
C++对函数、结构体的增强——inline内联函数、函数重载、struct升级
一、自定义函数VS宏函数1、自定义函数: 通过函数名找到函数存放的位置,给形参分配空间,传参,执行函数体内的语句,函数返回,释放空间。2、宏函数:宏替换,省去了形参以及函数体内需要分配的空间,还省去了函数调用传参,函数返回等过程,节省时间,提高运行效率。#define add(a,b) a+b //省去了形参以及函数体里需要分配的空间; //省去了函数调用,传参、函数返回、释放等过程...原创 2020-03-13 18:56:24 · 2542 阅读 · 0 评论 -
C++对C的加强(2)——引用和动态内存分配
C++对C的加强——引用1、什么是引用?绑定一个变量,不能再绑定其他的变量;其次定义一个引用一定要给它初始化(绑定一个变量)2、引用的作用:给变量起别名,操作这个引用实际上就是操作这个变量。1)引用作函数形参==指针作函数形参#include<iostream>using namespace std;void swap(int &a,int &b){...原创 2020-03-08 22:24:09 · 279 阅读 · 0 评论 -
C++对C的加强(1)——命名空间、输入输出、实用性加强(for、foreach、auto、extern、bool等)
一、命名空间1、命名空间的作用?防止变量名、函数名、类名发生命名冲突。2、如何定义命名空间?namespace + 空间名 + { }3、如何使用命名空间?命名空间名 + :: + 变量名或函数名!!(注意:命名空间可以嵌套使用)4、std :标准命名空间 using namespace std举例:输出语句就可以直接用:cout << " "...原创 2020-02-29 16:00:23 · 617 阅读 · 0 评论 -
C++ 封装(类和对象、构造函数的几种类型——拷贝、类型转换、移动构造函数)
一、封装——可以达到,对外提供接口,屏蔽数据,对内开放数据C语言中的封装:当单一变量无法完成描述需求的时候,结构体类型解决了这一问题。C++的封装:class封装的本质,在于将数据和行为,绑定在一起通过对象来完成操作。二、类和对象1、类的声明2、权限修饰符:public、private(set/get)、protected3、面向对象编程实例:栈的实现4、析构函数析构函数是类的一...原创 2020-04-28 13:03:40 · 489 阅读 · 0 评论 -
C++运算符重载
一、概念1、运算符重载:同一个运算符可以有不同的功能运算符重载其实就是定义一个函数,在函数体内实现想要的功能,当用到该运算符时,编译器会自动调用这个函数。也就是说,运算符重载是通过函数实现的,它本质上是函数重载。2、运算符重载的使用:运算符重载的格式:operator是关键字,专门用于定义重载运算符的函数。返回值类型 operator 运算符名称(形参列表){}1)全局范围的运...原创 2020-05-04 17:36:09 · 1133 阅读 · 0 评论 -
C++继承知识点(1)
1、继承:不是复制粘贴,不做任何修改或者操作源码就能实现代码的复用2、代码复用的方法:组合(has a) 继承(is a)3、组合:占用更多的内存优点:?需要另外一个类里面的属性或者方法,在类中定义对象4、继承:基类和派生类A是B的父类,B是A的子类覆盖:派生类拥有与基类相同的属性或者方法时,派生类会被覆盖继承不是共享有独立的空间,对自己的空间进行操作派生类的实例化大小:...原创 2020-05-04 11:07:23 · 283 阅读 · 0 评论
分享