
C++
lihao.
这个作者很懒,什么都没留下…
展开
-
lambda捕获列表是否可以传递this
从C++ Primer p352页可以看出在捕获列表中可以将this指针以值的方式传递,而不可以将this指针以引用的方式传递。思考:从前面我们学习类类型的this指针的时候就知道this指针的类型是类名* const类型的变量,如果将this指针以引用的方式传递给捕获列表则lambda的主题中就可以将this指针修改掉,所以不可以将this以引用方式传递。代码如下:class Test{ public: Test(/*Test* const this*/) { auto f1 =.原创 2021-03-14 22:33:42 · 730 阅读 · 0 评论 -
顺序容器比较及使用优先级
顺序容器的类型:vector,string,deque,list,forward_list,array;顺序容器的比较:vector:可变数组大小,支持任意位置的访问,尾插元素较为容易,其他插入较慢;string:与vector相似的容器,专门用来保存字符的容器,随机访问较快,尾插较快,其他插入较慢;deque:双端队列,支持随机访问,尾部和头部的插入/删除较快list:双向链表,支持任意位置的插入,效率较高,可以双向顺序查找元素,无法随机访问;forward_list:单向链表,只可以单项顺原创 2021-03-03 17:06:15 · 393 阅读 · 2 评论 -
探究C++类成员函数的编译次序
文章目录一、C语言函数的寻找次序二、C++语言类中函数的编译次序1.代码2.分析总结一、C语言函数的寻找次序//法一:调用Test成功int Add(int left,int right){ return left + right;}void Test(){ int num1 = 1; int num2 = 2; int ret = Add(num1,num2); printf("ret = %d\n",ret);}//法二:调用Test成功int Add(int left原创 2021-02-15 15:57:45 · 899 阅读 · 2 评论 -
我难道不配拥有函数体吗?---【纯虚函数函数体】
纯虚函数可以拥有函数体吗?class A{public://报错,函数在定义上有pure指定virtual void f1()=0{};};但是在类内定义不了在类外也定义不了吗?class A{public:virtual void f1()=0;};void A::f1(){cout << A::f1()<<endl;}//编译通过总结:纯虚函数在函数可以拥有函数体,但是类中只可以写纯虚函数的声明,纯虚函数的定义必须写在类外。...原创 2020-12-13 20:09:28 · 656 阅读 · 1 评论 -
浅谈C++多态
多态:多态指一种事物有多种状态,如车有奔驰宝马,人有学生老师;多态分类静态类型多态:静态类型多态也称作编译期间多态,指在编译期间完成后,就已经确定了调用那一方法,如果存在则调用,如果不存在,则编译错误。函数重载(普通函数的重载&成员函数的重载)//普通函数的重载int add(int left,int right){ return left + right;}double add(double left,double right){ return left + right原创 2020-12-09 17:04:45 · 196 阅读 · 0 评论 -
拷贝构造函数&赋值运算符重载
拷贝构造函数(复制构造函数):只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用原创 2020-08-14 17:26:25 · 751 阅读 · 0 评论 -
简易理解构造函数&析构函数
初始化理解:给对象开辟空间&给开辟的空间赋初始值eg:int a;//不是初始化int a = 10;//初始化int a(10);//初始化构造函数:构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数是一个特殊的成员函数:1.构造函数的名字必须与类名相同2.构造函数没有返回值,即使void也原创 2020-08-02 21:36:21 · 305 阅读 · 0 评论 -
类的定义&访问权限
如何定义一个类:在C++中,struct和class都可以用来定义类class 类名{类的成员:成员函数和成员变量};如果将类的成员函数声明和定义都放在类中来实现缺陷:1.可能导致编译器将次成员函数当成内联函数来处理2.如果将声明和定义都放在类中实现的类类型放在头文件中,当头文件在多个源文件中包含时,就会产生重复定义导致编译失败改正措施:将类的声明和定义分离开来,头文件中类中的成员函数仅仅放置声明,成员函数的定义放在源文件中注意:成员函数在类外定义时,成员函数名前必须要加类名::(作原创 2020-07-31 15:38:21 · 1067 阅读 · 0 评论