C++
文章平均质量分 66
Superwanna
身体和灵魂至少要有一个在路上
展开
-
传递临时对象要注意的陷阱
并发与多线程原创 2022-08-21 14:06:32 · 199 阅读 · 1 评论 -
Variadic Templates
一、可变参函数模板/*********************可变参数函数模板**********************/template<typename... T> //T:一包类型 ,args: 一包形参void myfunc(T... args){ cout << "可变参数 函数 模板" << endl; cout << sizeof...(args) << endl; cout << siz原创 2021-09-07 00:05:13 · 177 阅读 · 0 评论 -
const mutable this static
成员函数末尾的const在成员函数末尾增加一个const是告诉系统,这个成员函数不会修改对象里面任何成员变量的值等。也就是说,这个成员函数不会修改类对象的任何状态。这种在末尾缀了一个const的成员函数称之为“常量成员函数”。const成员函数可以被const对象和非const对象调用。而 非const成员函数只能非const对象调用。对于成员函数声明和实现分开的情况下,不但要在函数声明中增加const,也要在函数实现中增加const。普通函数(非成员函数)末尾是不能增加const的。mu原创 2021-04-13 17:01:51 · 156 阅读 · 0 评论 -
类_构造函数、构造函数初始化列表、函数默认参数、隐式转换和explicit
类基础类是一种自定义的数据类型,也就是一个新类型。类与类之间,并不是彼此孤立的。例如,一个类可以派生出子类,那么这个派生子类的类就变成了该子类的父类。类的构成包含成员变量、成员函数。当然,类中有很多特殊的成员函数。访问类的成员,如果是类的对象,就使用“对象名.成员名”来访问。如果是指向这个对象的指针,则使用“指针名 -> 成员名”来访问。类中public修饰的成员可供外界调用,priviate修饰的成员只能类的内部调用。class默认是private。在C中称呼“结构”,在C++中仍然原创 2021-04-11 14:38:27 · 349 阅读 · 0 评论 -
类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
显示类型转换在C++中,显示类型转换(强制类型转换)分为4种。分别是:static_cast、dynamic_cast、const_cast、reinterpret_cast。这些命名的强制类型转换的通用形式如下:强制类型转换名< type >(express);强制类型转换名就是上述四种,type是转换的目标类型,express是要转换的值。static_cast:静态转换编译的时候就会进行的类型转换的检查,和C语言中的强制类型转换很相似。一般的编译器能够执行的隐式的类型转换原创 2021-04-08 21:26:17 · 253 阅读 · 0 评论 -
迭代器 iterator
迭代器简介迭代器是一种遍历容器内元素的数据类型。(这种数据类型有点像指针,可以将迭代器理解为是用来指向容器内的某个元素的)string可以用“[ ]”来访问string字符串内的字符,vector也可以通过“[ ]”来访问vector中的元素。但C++中一般采用迭代器来访问它们。除了vector容器外,C++标准库中还有好几种其他种类的容器(如:list、map等),均可使用迭代器来访问它们。string不是容器,但也支持用迭代器来遍历。通过迭代器,可以读取容器中的元素值,修改容器中某个迭代器所原创 2021-04-07 00:27:11 · 206 阅读 · 0 评论 -
vector 类型
Introductionvector 是标准库中的一个类型,代表的是一个容器、集合或者动态数组的一个概念。可以把若干个对象放到容器中,但这些对象的类型必须相同。简单的说,可以把一堆int型数字放到 vector 容器中,复杂点说,可以把一堆相同类型的类对象放到 vector 中去。要使用这种类型需要包含 vector 头文件#include<vector>。当然为方便引用这种类型,也要书写:using namespace std;举例说明:vector< int >my原创 2021-04-05 18:10:22 · 798 阅读 · 0 评论