Loading

随笔分类 -  C/C++

摘要:##注意事项(class with pointer members) Big Three,三个特殊函数:析构函数、拷贝构造函数、拷贝赋值函数。 ##代码(String类) #include <iostream> #include <bits/c++config.h> #include <string 阅读全文
posted @ 2021-03-24 17:06 小森林呐 阅读(76) 评论(0) 推荐(0)
摘要:按照侯老师的说法,我们去设计一个类时,尽量让人看起来比较专业,注意的点包含但绝不仅限于如下: ###注意事项(class without pointer) 1、防卫式的申明,防止头文件的内容被重复包含。 2、成员变量尽量放在private中,要提供相应的接口访问成员变量。 3、成员函数尽量放在pub 阅读全文
posted @ 2021-03-24 11:57 小森林呐 阅读(708) 评论(2) 推荐(0)
摘要:本文章来自于拓跋阿秀的《逆袭进大厂》系列,仅作收藏。 这是本期的 C++ 八股文目录,看看你会哪些? ##1、在main执行之前和之后执行的代码可能是什么? main函数执行之前,主要就是初始化系统相关资源: 设置栈指针 初始化静态static变量和global全局变量,即.data段的内容 将未初 阅读全文
posted @ 2021-02-01 19:29 小森林呐 阅读(482) 评论(0) 推荐(0)
摘要:##1.本质 指针常量:本质上是一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。 常量指针:本质上是一个指针,常量表示指针指向的内容,表示该指针指向一个“常量”。 ##2.地址 指针常量:在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。 阅读全文
posted @ 2021-01-09 21:19 小森林呐 阅读(816) 评论(0) 推荐(0)
摘要:多态 **定义:**指同样的消息被不同类型的对象接收时导致不同的行为。 **实现:**编译时多态和运行时多态。 ##编译时多态 ###运算符重载 C++中默认运算符的操作对象只局限于基本的内置数据类型,对于我们自定义的类是没有办法进行操作的,为了解决这个问题,提出了运算符重载,其本质还是函数重载。我 阅读全文
posted @ 2020-10-06 16:31 小森林呐 阅读(325) 评论(0) 推荐(0)
摘要:##继承 **定义:**继承就是新类从已有类那里得到已有的特性。类的派生指的是从已有类产生新类的过程。原有的类成为基类或父类,产生的新类称为派生类或子类。 继承可以扩展已存在的代码,目的也是为了代码重用,继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的)、private(私有的 阅读全文
posted @ 2020-10-05 20:56 小森林呐 阅读(218) 评论(0) 推荐(0)
摘要:深拷贝用来解决浅拷贝造成的两次析构问题,因为浅拷贝时,两个指针指向同一块内存空间,析构时,一块内存空间释放两次,系统会报错。因此,我们需要重新开辟一块内存空间,使两个指针指向不同的空间,以此来解决问题。 下面用一个String的例子来验证深拷贝。 #include <iostream> #inclu 阅读全文
posted @ 2020-09-28 22:31 小森林呐 阅读(251) 评论(0) 推荐(0)
摘要:##斐波那契数列 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列从第三项开始,每一项都等于前两项之和。 在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N* 阅读全文
posted @ 2020-09-26 10:48 小森林呐 阅读(2163) 评论(0) 推荐(0)
摘要:#include <iostream> using namespace std; //函数指针,利用函数指针来优化程序 bool div2(int n) { return n % 2 == 0; } void printfArray(int a[], size_t len, bool (*ptr)( 阅读全文
posted @ 2020-09-25 22:32 小森林呐 阅读(708) 评论(0) 推荐(0)
摘要:结构体的对齐和补齐的规则: 对齐:假定从零地址开始,每成员的起始地址编号,必须是它本身字节数的整数倍。 补齐:结构的总字节数必须是它最大成员的整数倍。 注意:在window系统下计算补齐、对齐时,成员超过8字节按8字节计算。 阅读全文
posted @ 2020-09-17 21:41 小森林呐 阅读(381) 评论(0) 推荐(0)
摘要:出自:高质量 C++/C 编程指南 作者:林锐 #第1章 文件结构 ##1.1 版权和版权的声明 版权和版本的声明位于头文件和定义文件的开头,主要内容有: (1)版权信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息 /* * Copyright 阅读全文
posted @ 2020-08-20 21:44 小森林呐 阅读(261) 评论(0) 推荐(0)
摘要:13.1 拷贝、赋值、销毁 知识点1:在定义一个类时,我们可以显式或隐式的定义在此类型的对象拷贝、赋值、移动、销毁是做什么,主要通过五种特殊的成员函数来完成这些操作:拷贝构造函数、拷贝复制运算符、移动构造函数、移动复制运算符。析构函数 知识点2:拷贝和移动构造函数定义了当用同类型的一个对象初始化本对 阅读全文
posted @ 2020-08-13 11:13 小森林呐 阅读(135) 评论(0) 推荐(0)
摘要:习题首页 12.1.1 shared_ptr类 知识点1:静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。 知识点2:栈内存用来保存定义在函数内的非static对象。 知识点3:分配在栈或内存中的对象由编译器自动创建和销毁。 知识点4: 栈对象在其定义的程序 阅读全文
posted @ 2020-08-04 17:42 小森林呐 阅读(234) 评论(0) 推荐(0)
摘要:习题首页 11.1 使用关联容器 知识点1:关联容器与顺序容器有着本质的区别,关联容器中的元素是按关键字来保持和访问的。 知识点2:与之相反,顺序容器中的元素是按它们在容器中的位置来顺序保持和访问的。 知识点3:关键词在关联容器中起到重要的作用,map中的元素是(关键字—值)对,关键词是索引左右,值 阅读全文
posted @ 2020-08-03 14:32 小森林呐 阅读(123) 评论(0) 推荐(0)
摘要:习题首页 10.1 概述 1 泛型算法:实现了一些经典算法的公共接口,如排序和搜索,可以用于不同类型的元素和多种容器类型 2 基本上都定义在algorithm和numeric两个头文件中 3 迭代器令算法不依赖于容器,依赖于元素类型的操作 练习10.1 #include<iostream> #inc 阅读全文
posted @ 2020-07-09 13:53 小森林呐 阅读(194) 评论(0) 推荐(0)
摘要:习题首页 知识点1:所有的容器类都共享公共的接口,不同容器按不同方式对其进行扩展,每种容器提供了不同的性能和功能的权衡 vector:可变大小,支持快速随机访问,尾位置删除\插入速度很快,其余很慢,将元素保存在连续的内存空间 deque:双端队列。支持快速随机访问,头尾部插入\删除数据很快 list 阅读全文
posted @ 2020-06-18 16:24 小森林呐 阅读(210) 评论(0) 推荐(0)
摘要:习题首页 知识点1:IO类分别定义在三个独立的头文件中 iostream定义了用于读写流的基本类型 fstream定义了读写命名文件的类型 sstream定义了读写内存string对象的类型 习题8.1 istream &iofunc(istream &is) { string s; while ( 阅读全文
posted @ 2020-06-11 15:18 小森林呐 阅读(191) 评论(0) 推荐(0)
摘要:本帖记录我学习C过程,用的是《CPrimer》第五版。 博客主要记录课后答案以及相关知识点,答案均来自于网络以及自身的理解(侵删)。 因为本人水平有限,如有有误之处,希望大家不吝指教,谢谢! 系统:WIN 10,编译器:VS2013,排版Markdown语法。 第八章 IO库 第九章 顺序容器 第十 阅读全文
posted @ 2020-06-11 14:36 小森林呐 阅读(560) 评论(0) 推荐(0)