C++
colorful_xx
积跬步,至千里。
展开
-
内存配置和释放操作new delete
new delete原创 2023-08-02 23:10:12 · 174 阅读 · 0 评论 -
valgrind定位内存泄漏命令
valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --track-origins=yes --log-file=./chechout.log ./xxx原创 2023-05-27 11:21:27 · 149 阅读 · 1 评论 -
C++ static
/** - static* - 静态变量:当变量被声明为static时,空间将在程序的生命周期内分配;即使多次调用该函数,静态变量的空间也只分配一次,前一次调用中的变量值通过* 下一次函数调用传递;这对于在C/C++或需要存储先前函数状态的任何其他应用程序非常有用。* - 类中的静态变量:由于声明为static的变量只被初始化一次,因为它们在静态存储中分配了空间,因此类中的静态变量由对象共享;* 对于不同的对象,不能有相同静态变量的多个副本,也是这个原因,静态变量不能使用构造函数初始化.原创 2022-02-22 20:36:13 · 322 阅读 · 0 评论 -
c++ sizeof类大小
/** - 空类的大小为1字节* - 静态数据成员被编译器放在程序的一个global data mnembers中,它是类的一个数据成员,但不影响类的大小;不管这个类产生了多少个实例,* 还是派生了多少新的类,静态数据成员只有一个实例;静态数据成员,一旦被声明,就已经存在。* - 对于包含虚函数的类,不管有多少个虚函数,只有一个虚指针,vptr的大小。* - 普通单继承,继承就是基类+派生类自身的大小(字节对齐)。* - 虚单继承,派生类继承基类vptr*/#include<i.原创 2022-02-22 19:43:15 · 425 阅读 · 0 评论 -
c++ lambda表达式
/** lambda的语法形式:[函数对象参数](操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}* - [函数对象参数]:标识一个lambda表达式的开始,必须存在,函数对象参数形式如下:* [] 未定义任何变量,试图在lambda内使用任何外部变量都是错误的* [x, &y] x按值捕获,y按引用捕获* [&] 用到的任何外部变量都隐式按引用捕获* [=] 用到的任何外部变量都隐式按值捕获* [&, .原创 2022-02-22 14:58:35 · 55 阅读 · 0 评论 -
c++ 模板特化
1、模板特化:模板参数在某种特定类型下的具体实现。2、模板特化的格式:template <> 返回类型 函数名<特化的数据类型>(参数表) {}3、当程序中同时存在模板和它的特化时,特化将被优先调用;在同一个程序中,除了函数模板和它的特化外,还可以有同名的普通函数。其区别在于C++会对普通函数的调用实参进行隐式的转换,但不会对,疤函数及特化函数的参数进行任何形式的类型转换。4、实例template <class T>T myMax(T x, T原创 2022-01-13 14:41:33 · 1186 阅读 · 0 评论 -
类的构造与析构
一、类对象成员的构造 1、先构造成员 2、再构造自身(调用构造函数)二、派生类构造函数派生类可能有多个基类,也可能包括多个成员对象,在创建派生类对象时,派生类的构造函数除了要负责本类成员的初始化外,还要调用基类和成员对象的构造函数,并向它们传递参数,以完成基类子对象和成员对象的建立和初始化。1、派生类只能采用构造函数初始化列表的方式向基类或成员对象的构造函数传递参数,形式如下:派生类构造函数名(参数表):基类构造函数名(参数表),成员对象...原创 2021-12-23 22:26:04 · 1037 阅读 · 0 评论