c++基本语法
一起慢慢变强
既可以朝九晚五,又可以浪迹天涯
展开
-
前置++(--)和后置++(--)运算符重载
后置++,因为返回的是一个临时变量,所以不可以修改。不能出现i++++的情况。原创 2022-09-19 10:27:13 · 122 阅读 · 0 评论 -
c++中的初始化列表
目录初始化列表的概念和使用初始化列表的注意事项1. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)2. 类中包含以下成员,必须放在初始化列表位置进行初始化:3.最好使用初始化列表进行初始化,因为对于自定义类型,我们还是需要使用初始化列表进行初始化的4. 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关初始化列表的概念和使用初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括原创 2022-04-13 22:14:50 · 5157 阅读 · 0 评论 -
c++中的拷贝构造
目录拷贝构造的概念拷贝构造的特性拷贝构造的概念拷贝构造:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用class Data{public: Data(int year = 0, int month = 0, int day = 0) { _year = year; _month = month; _day = day; } Data(const Data& d) //创建出一个拷原创 2022-04-13 21:50:50 · 207 阅读 · 0 评论 -
c++中的赋值运算符重载=(默认成员函数)
目录赋值运算符重载的概念赋值运算符重载的特性赋值运算符重载的概念#include<iostream>using namespace std;class Data{public: Data& operator=(Data& d) //创建赋值运算符重载 { if (this != &d) //因为传递过来的d是个形参,只是是传引用传递的,所以需要& { _year = d._year; _month = d._mo原创 2022-04-12 22:22:56 · 695 阅读 · 0 评论 -
c++中的析构函数
目录析构函数的概念析构函数的特性析构函数的概念当对象被销毁的时候,假如我们不写编译器会自动调用默认析构函数来对对象进行处理,默认析构函数不是销毁对象中的变量的,而是对对象中的变量进行清理#include<iostream>using namespace std;class Data {public: ~Data() // 默认析构函数的创建 { free(a); //在销毁的时候可以自动释放内存 a = NULL; }private: int*原创 2022-04-12 17:41:57 · 373 阅读 · 0 评论 -
c++中的构造函数
目录构造函数的概念构造函数的特性构造函数的概念当我们创建类的时候,编译器会自动调用默认构造函数来对对象中的成员变量进行初始化,这样可以保证对象中的成员变量在创建的时候拥有一个初始值#include<iostream>using namespace std;class Data {public: Data() // 默认构造函数的创建 { _year = 0; _month = 1; _day = 1; }private: int _year;原创 2022-04-12 17:13:18 · 154 阅读 · 0 评论 -
c++中的this指针
目录this指针的使用this指针的特性this指针的使用#include<iostream>using namespace std;class Data //创建一个类相当于创建了一个类域,所有的成员都在这个域中{public: void init(int year, int month, int day); //其实接收的是init(Data* this, 2022, 4, 12)private: int _year; int _month; int _原创 2022-04-12 16:28:22 · 171 阅读 · 0 评论 -
c++中类的定义和使用规则
类的定义类的定义:class classname //class为声明类的关键字,classname为类的名称{ //创建类的成员};在类中创建的变量为成员变量,在类中创建的函数为成员函数类中函数的两种定义方式1、在类中定义class classname {public: void init() //在类中定义函数 { _x = 1; }private: int _x;};2、在类中声明函数,在类外定义函数,将类定义在.h文件,函...原创 2022-04-12 15:13:22 · 1790 阅读 · 0 评论 -
inline定义的内联函数
目录内联函数的概念内联函数和宏定义的比较内联函数的优点与不足内联函数的概念概念:经过inline修饰的函数,编译器在使用这个函数的时候会自动将这个函数展开,所以没有了函数创立栈帧的开销,提高了程序的运行效率inline int Add(int x, int y) //内联函数的样例{ return x + y;}内联函数和宏定义的比较#include<iostream>using namespace std;#define ADD(a,b)原创 2022-04-11 15:53:15 · 257 阅读 · 0 评论 -
引用的定义和使用
引用的概念引用是和创建好的变量共用一款内存空间,不是重新创建一块内存空间,是给已经创建好的变量重新命名#include<iostream>using namespace std;int main(){ int a = 0; //创建一个变量a int& b = a; //创建一个b,b引用了a return 0;引用的使用规则1、引用必须初始化#include<iostream>using namespace ...原创 2022-04-10 11:19:07 · 317 阅读 · 0 评论 -
extern “C“的定义和使用
目录extern "C"的定义extern "C"的使用extern "C"的定义当我们用c++写一些函数的时候,需要将这些函数提供给c语言的程序时候,因为二者命名规则的不同导致c语言无法调用c++写的函数,这时候,我们可以将c++写的函数前面添加一个extern "C",说明这个函数是以c语言的风格命名的,这样就可以调用这个函数了c++中gcc的命名规则,_Z+函数名长度+函数名+类首字母c中的命名规则,函数名extern "C"的使用int Add(int x..原创 2022-04-10 08:34:41 · 452 阅读 · 0 评论 -
函数重载的定义及应用
函数重载的定义函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题...原创 2022-04-10 08:06:55 · 2347 阅读 · 0 评论 -
缺省参数的定义和应用
目录缺省参数的概念缺省参数的分类缺省参数的概念缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参缺省参数的分类1、全缺省参数int add(int x = 1, int y = 2)//将x,y进行了赋值,如果没有传参,将使用默认值{ return x + y;}2、半缺省参数int add(int x, int y = 1)//将y进行了赋值,如果没有传参,y将使用默认值{ re原创 2022-03-23 09:49:40 · 1905 阅读 · 0 评论 -
命名空间的定义
目录为什么会有命名空间命名空间的定义命名空间的使用为什么会有命名空间因为我们在写代码的时候会大量使用到类名,函数名,变量名等一些名字,这些变量、函数和类的名称将都存在于全局作用域中,当出现重复的名字的时候,就会发生命名冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的命名空间的定义namespace N //N为命名空间名字{ //命名空间的成员}1、普通的命名空间names原创 2022-03-23 09:20:07 · 616 阅读 · 0 评论