C++学习
文章平均质量分 53
苏子徽的研学之路
这个作者很懒,什么都没留下…
展开
-
深拷贝和浅拷贝
如果利用编译器提供的拷贝构造函数,会做浅拷贝操作。深拷贝:在堆区重新申请空间,进行拷贝操作。浅拷贝带来的问题就是堆区的内存重复释放.浅拷贝:简单的赋值拷贝操作。原创 2023-09-22 23:31:44 · 35 阅读 · 1 评论 -
10.C++内存四区
C++程序在执行时,将内存大方向划分为4个区域利用“(类型)&变量”来查询变量地址。原创 2023-09-20 23:42:39 · 37 阅读 · 1 评论 -
9.IO库
IO库设施:· istream(输入流)类型,提供输入操作;· ostream(输出流)类型,提供输出操作;原创 2023-09-17 00:02:18 · 38 阅读 · 1 评论 -
9.C++关于类的学习
get_name函数中return name===return this->name;成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象。1.2引入const成员函数。原创 2023-09-15 00:08:06 · 226 阅读 · 0 评论 -
8.C++函数
/ 声明getfcn唯一需要注意的地方是,牢记将decltype作用于某个函数时,它返回的函数类型而非指针类型。当函数不需要对数组元素执行写操作的时候,数组的形参应该是指向const的指针。形参的类型必须与对应的形参类型匹配。函数的返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针。函数完成后,它所占用的存储空间也随之被释放掉,因此函数终止意味着局部变量的引用将指向不再有效的内存区域。} // 这个函数的参数和返回类型都是const string 的引用,但我们需要得到一个普通的引用。原创 2023-09-09 19:33:41 · 593 阅读 · 1 评论 -
7.C++运算符
问题在于:赋值运算符左右两端的运算对象都用到了beg,并且右侧的运算对象还改变了beg的值,所以该赋值语句是未定义的。reinterpret_cast通常未运算对象的位模式提供较低层次上的重新解释。使用reinterpret_cast是非常危险的!sizeof运算符满足右结合律,其所得的值使一个size_t类型的常量表达式。// 如果先求右侧的值。> expr2。原创 2023-09-07 21:05:52 · 40 阅读 · 1 评论 -
6.C++数组
/ 含有三个元素,分别是0, 1, 2// 维度是3的数组// 等价于 a3[] = {0, 1, 2, 0, 0}// 错误:初始值太多。原创 2023-09-06 08:46:27 · 31 阅读 · 1 评论 -
5.vector容器
iter->mem // 解引用iter并获取该元素的名为mem的成员,等价于(*iter).mem。// 10个int类型的元素,每个都被初始化为-1。vector的迭代器为vector::iterator xx。v.empty() // 如果v不含有任何元素,返回真;v.push_back(t) // 向v的尾端添加一个值为t的元素。*iter // 返回迭代器iter所指元素的引用。v[n] // 返回v中第n个位置上元素的引用。v.size() // 返回v中元素的个数。原创 2023-09-05 22:23:47 · 33 阅读 · 1 评论 -
4.标准库类型string
/ 输出当前字符,后面紧跟一个换行符。tolower(c) // 如果c是大写字母,输出对应的小写字母。isxdigit(c) // 当c是十六进制数字为真。isalnum(c) // 当c是字母或数字时为真。iscntrl(c) // 当c是控制字符时为真。isprint(c) // 当c是可打印字符为真。islower(c) // 当c是小写字母为真。ispunct(c) // 当c是标点符号为真。isupper(c) // 当c是大写字母为真。isdigit(c) // 当c是数字时为真。原创 2023-09-05 19:30:50 · 33 阅读 · 1 评论 -
3.C++关键字类型用法
/ base是double的同义词,p是double*的同义词。// wages是double的同义词。// 正确:加法的结果是int因此b是一个int。// 错误:d是int&,必须初始化。// 错误:c是int&,必须初始化。decltype和引用:decltype的结果可以是引用类型。// 正确:e是一个int。typedef 类型别名:是某种类型的同义词。原创 2023-09-04 09:31:44 · 32 阅读 · 1 评论 -
2.constexpr和常量表达式
将变量声明为constexpr类型以便由编译器来验证变量的值是否一个常量表达式。// limit也是常量表达式。在指针中,constexpr int *i等价于int *const i;常量表达式是指不会改变并且在编译过程中就能得到计算结果的表达式。常量表达式:字面值、用常量表达式初始化的const对象等。// i是常量表达式。// size不是常量表达式。原创 2023-09-04 00:29:57 · 29 阅读 · 0 评论 -
1.顶层const和底层const的学习
赋值可以看出命令,领导当然不能命令领导等同于顶层const不能赋值给顶层const;而 const int *const p3 = &i;//即为底层const,又为顶层const。总结:用顶层const表示指针是个常量,用底层const表示指针所指的对象使一个常量。// 错误:底层const不能赋值给顶层const。对于指针可以理解为在*左边为底层const,右边为顶层const。//正确:p3即为顶层又为底层,不影响。// 顶层const。原创 2023-09-04 00:04:23 · 47 阅读 · 1 评论