C++
qqq2018
奋意向人生
展开
-
lambda函数(匿名函数)c++/python
C++常见的格式:[capture](parameters)->return-type {body}[capture]:捕获类型, & 或者 = 加上变量名,其中 & 表示按引用访问,= 表示按值访问,变量之间用逗号分隔,比如 [=factor, &total] 表示按值访问变量 factor,而按引用访问 total。(parameters):参数列表->return-type:返回值类型{body}:函数体int c = 3;auto f = [=](i原创 2020-11-04 18:24:00 · 181 阅读 · 0 评论 -
c++语法出过错的点
1.define行结尾不应该有引号#defineHAHA 123原创 2020-11-04 15:32:47 · 86 阅读 · 0 评论 -
c++内联函数inline深入理解
inline成员函数的声明和定义都在头文件中。(因为所有调用这个头文件的文件都要有该内联函数的定义而不仅仅要声明)1.一个好的编译器能自动决定函数是否应该被当做内联函数使用,不管是否添加inline关键字。2.在声明时就定义的函数自动成为内联函数,即使没有inline关键字。过大的不替换。总结:有inline的不一定是内联函数,没inline的不一定不是内联函数。...原创 2020-11-02 18:37:00 · 582 阅读 · 0 评论 -
2020-09-21 Visual Studio头文件和库目录配置
包含目录、库目录、附加包含目录、附加库目录、附加依赖项区别项目->属性: VC++目录:(改的是系统全局的) 包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录 库目录:寻找.lib文件的搜索目录 C/C++(改的是本工程的配置) ->常规 附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录。 ->链接器: 常规:附加库目录:寻找.lib文件的目录 ->输入:附加依赖项:单个原创 2020-09-21 15:31:57 · 1026 阅读 · 0 评论 -
2020-10-10 类的默认函数
任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数:分三类:1.清理和初始化:默认构造函数、默认析构函数2.拷贝和赋值:默认拷贝构造函数,默认重载赋值函数3.取地址:默认取地址函数,默认取地址const函数的c++11后加了两个:默认移动构造函数默认重载移动赋值操作符默认取地址函数和默认取地址const函数讲解:https://blog.csdn.net/y2zaijian/article/details/106648280定义:class A {public:A()原创 2020-10-10 14:45:31 · 80 阅读 · 0 评论 -
2020-09-27google c++编程规范中的点
格式// 括号外有空格if (condition) {}命名变量名一律小写,下划线相连my_exciting_local_variable类的成员变量以下划线结尾my_exciting_local_variable_常量命名(Constant Names)在名称前加k:const int kDaysInAWeek = 7;普通函数:函数名以大写字母开头,每个单词首字母大写,没有下划线:AddTableEntry()存取函数:存取函数要与存取的变量名匹配void set_n原创 2020-09-27 18:42:52 · 182 阅读 · 0 评论 -
2020-09-25 boost库的noncopyable,用于单例模式
从boost::noncopyable类继承原因:用于单例singleton对象。当一个类不显示声明构造函数、析构函数、拷贝构造函数、赋值构造函数时,编译器会默认生成,但有时候我们不想让他们有能被拷贝或者赋值的功能。类的默认构造函数:默认拷贝构造函数;默认析构函数;默认重载赋值运算符函数;默认重载取址运算符函数;默认重载取址运算符const函数;默认移动构造函数move(C++11);默认重载移动赋值操作符函数(C++11)。内部实现:将拷贝构造函数和赋值构造函数私有,子类对象就原创 2020-09-25 15:53:18 · 347 阅读 · 0 评论 -
C++多线程加锁/线程池使用
1.多线程加锁#include <mutex>mutex mut;mut.lock ();mut.unlock ();以下代码执行结果为200000000,证明没有发生val被一个线程获取处理还没写回的时候,被另一个线程读走。如果不加锁,val的结果会是100000000到200000000之间的一个数。#include <iostream>#include <thread>#include <mutex>using name原创 2020-07-24 00:18:32 · 1376 阅读 · 0 评论 -
指针函数和函数指针
1.指针函数本质是函数,返回类型是指针2.函数指针本质是指针,指向了一个函数。作用是相当于调用和函数之间多了一个桥梁,改变要调用的函数时候不用修改每个调用的地方,只要修改调用时候用的函数指针指向。int max(int a, int b){ return a > b ? a : b;}int (*p)(int a, int b); //也可以使用这种方式定义函数指针,给函数参数p = max; //函数指针初始化,给函数名int ret = p(10原创 2020-06-25 17:24:52 · 152 阅读 · 0 评论 -
C++ 6.操作符重载
重载语法原创 2020-05-23 20:41:37 · 129 阅读 · 0 评论 -
C++ 7.模板
把数据类型作为参数函数模板//函数模板//templete<typename T> typename或class都行template<class T>T myMax(T a, T b){ return (a>b)?a:b;}//实例化为模板函数(T换上具体类型后的)重载//普通函数重载函数模板,同时满足的时候,普通函数优先类模板template<class T>class Human{};Human<原创 2020-05-20 16:58:55 · 99 阅读 · 0 评论 -
C++ 5.多态
多态(动态联编)不包括重载(静态联编)!!!多态/虚函数就想动态联编。虚继承就想菱形的继承结构。虚函数:因为基类指针或引用可以指向派生类,所以不能在编译期就确定调用了哪个函数。意思是不看指针或者引用生命的时候是什么类型,而要看实际指向了什么类型。基类中声明为虚函数的,派生类中不显示声明也会自动变为虚函数。class Human1{public: virtual void show(){cout<<"Human1"<<endl;}};class Huma原创 2020-05-19 22:45:38 · 143 阅读 · 0 评论 -
C++ 4.继承
继承写法//继承写法。继承方式public可选,不写默认为privateClass sportCar:public Car,public Ship{public:private:};保护(protect)对象//protected在没有继承的时候和private一样//发生公有继承时,protected在派生类中可以被访问//但是不能访问基类“对象”的保护成员。//基类对象类型是基类的,当然不能访问和privete一个效果的protected。这个与是不是在继承关系中原创 2020-05-18 14:28:19 · 327 阅读 · 0 评论 -
C++_3.类
类声明//定义类class Human{};//别忘记分号//定义对象Human fred;继承//冒号,大括号后没引号Class sportCar:public Car,public Ship{ Car::move(){}//多继承命名冲突解决办法:使用域解析符 Ship::move(){}}类中的constclass C{public: //引用方式传参,又不改变传入的参数,最好用const。防止误写且编译器能优化 void原创 2020-05-17 17:51:19 · 105 阅读 · 0 评论 -
c++ 2.从c到c++
继承//冒号,大括号后没引号Class sportCar:public Car,public Ship{ Car::move(){}//多继承命名冲突解决办法:使用域解析符 Ship::move(){}}名字空间//定义,同一名字空间可以定义多次:namespace mfc{ int inflag; }//使用:mfc::inflag=3;//或者using mfc::inflag;inflag=3;输入输出:1.带参数的操作符(setw.原创 2020-05-10 15:43:17 · 173 阅读 · 0 评论