
C++
C++初阶学习记录
王泊如
咸鱼
展开
-
「C++」模板详解
文章目录模板引言模板基本概念什么是模板?模板分类函数模板函数模板概念函数模板使用方式函数模板实例化函数参数的匹配原则类模板类模板基本概念类模板使用方式类模板实例化模板引言假如现在需要实现一个交换整数的函数,很简单就能实现,但是如果没有说交换类型,那么可能需要写各种类型的重载,函数重载虽然可以实现,但是这么做很麻烦,函数的复用性很低,且代码的可维护性比较低,一个出错可能让所有重载都错。void Swap(int& left, int& right) { int temp =原创 2020-11-19 20:49:14 · 389 阅读 · 0 评论 -
指针空值nullptr(C++11)
本篇博客会写C++11标准的中的一个新特性nullptr,并解释它的使用方法。指针空值nullptrC++98中的指针空值在我们平时声明一个变量时,一般会给变量一个初始值,例如:void TestPtr(){ int* p1=NULL; int* p2=0;}这个NULL实际上就是一个宏,在传统的C头文件(stddef.h)中:#ifndef NULL#ifdef __...原创 2019-12-05 19:53:25 · 1149 阅读 · 1 评论 -
基于范围的for循环(C++11)
本篇博客会写C++11标准的中的一个新特性范围for,并解释它的使用方法。基于范围的for循环范围for介绍那么什么是范围for呢?在使用早期C++标准的遍历一个数组,我们会使用这段代码:void TestFor(){ int array[] = { 1, 2, 3, 4, 5 }; for (int i = 0; i < sizeof(array) / sizeo...原创 2019-12-04 21:10:03 · 1139 阅读 · 0 评论 -
auto关键字(C++11)
本篇博客会写C++11标准的中的一个新特性auto,并解释它的使用方法。auto关键字auto介绍auto简介:在C++11中auto作为一个新的类型指示符来指示编译器,auto声明的变量必须是由编译器在编译时推导而得。说简单点,auto相当于一个自动推导。而在早期的C/C++里auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量。int TestAuto(){ ...原创 2019-12-04 20:17:55 · 533 阅读 · 0 评论 -
「C++」类与对象1
类的引入我们都知道C语言是一门面向过程语言,而C++是一门面向对象的语言,那么何为面向过程、面向对象呢?面向过程就是关注的是过程,分析求解问题的步骤,通过调用函数逐步解决问题,而面向对象关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。在C语言中我们用关键字struct来定义结构体,结构体只能定义变量,那我们要定义函数怎么办呢,在C++中结构体内不仅可以定义变量也可以定义函数...原创 2019-11-20 20:03:51 · 187 阅读 · 0 评论 -
「C++」内联函数
内联函数概念以inline修饰的函数叫做内联函数,在编译C++时编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率。是不是感觉和宏很像,不过宏既可以定义函数也能定义常量,顺便提一下宏的优缺点优点:1.增强代码的复用性2.提高性能缺点:1.不方便调试宏(预编译阶段就进行了转换)2.导致代码的可读性变差,可维护性差,容易误用3.没有类型安全性的检查...原创 2019-11-19 19:54:44 · 228 阅读 · 0 评论 -
「C++」引用详解
引用的概念引用不是定义了一个新变量,而是给已经存在的变量取一个别名,编译器不会为引用变量开辟空间,它和它引用的变量共用一块内存空间。使用方法如下:int main(){ int a=10; int &b=a;//定义引用类型 printf("%d\n",a); printf("%d\n",b); printf("%p\n",&a); printf("%p\...原创 2019-11-13 17:52:26 · 223 阅读 · 0 评论 -
「C++」函数重载
函数重载概念函数重载是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数、类型、顺序)必须不同,常用来处理实现功能类似而数据类型不同的问题就像在自然语言中一个词有多个意思,需要根据上下文来判断该词的真实含义,既该词被重载了,在C++中编译器也会根据情况来调用同名函数,可以看下面这个实例int Add(int a,int b){re...原创 2019-11-12 17:51:25 · 220 阅读 · 0 评论 -
「C++」缺省参数
C++缺省参数就像是给函数的参数配了一个备胎缺省参数概念缺省参数是声明或定义函数时为函数的参数指定的一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。可以用下面这一段代码清楚解释:void TestFunc(int a = 0){ cout<<a<<endl;}int mian(){ TestFunc();//没有传参时,...原创 2019-11-06 16:24:32 · 213 阅读 · 0 评论 -
「C++」命名空间
命名空间概念在初学C++时,会写到的第一段代码肯定是这个:#include<iostream>using namespace std;int main(){ cout<<"hello world"<<endl; return 0;}我相信大多数初学者还是不知道前两行代码的意思,其实一开始我也不知道,老师说这样写就这样写,记住就行了,后...原创 2019-11-05 18:11:56 · 391 阅读 · 0 评论 -
「C++」初识
序言2019下半年,我开始了C++的系统化学习之旅。毋庸置疑,在学习一块知识时,尤其是比较难的知识时,需要构建自己的知识体系,所以在学习C++的过程中我也在刻意地去做到这点,并写下博客记录学习过程。对C++的一些认识C++98 C++标准第一个版本,引入了STL我目前认知较浅,我所认知的C++更像是人们为了解决C语言无法解决或者不方便解决的问题而创造出来的的语言。C++其实是...原创 2019-11-05 16:49:50 · 168 阅读 · 0 评论