C++
文章平均质量分 96
关于C++的语法和问题
chihiro1122
一名在校大学生,主要分享自己在学习过程中的笔记和一些问题
展开
-
冯诺依曼体结构 - 为什么要有操作系统
我们现在常见的 计算机,如 笔记本电脑,或者是不常见的 计算机,如服务器,大部分都遵循一个体系结构 -- 冯诺依曼体系结构。计算机的基本构成 就是由 冯诺依曼体系结构 来构成计算机的基本单元的。而,冯诺依曼体系结构非常的简单,就是由输入设备输入数据,保存到 存储器当中,然后将数据读取到 运算器当中,进行逻辑运算,再把运算结果 写会到 存储器当中,输出设备就可以从 存储器当中读取数据进行输出操作。这就是 冯诺依曼最基本的 操作流程,如下图所示:上述就是冯诺依曼体系结构。原创 2023-10-22 09:43:24 · 312 阅读 · 13 评论 -
C++ - 包装器 - bind()函数
在 C++ 当中可能会有各种各样的可调用类型,比如 函数指针,仿函数,lambda 等等,那么这么多的可调用类型,我们在使用的时候就会犯迷糊,那可不可以统一控制一下呢?function包装器,也叫做适配器。我们先来看一个例子:上述有三种调用方式,分别是:函数指针,仿函数 和 lambda表达式。每一个 不同类型的 函数,在同一个 函数模版当中会实例化出 三份 函数,因为 f 这个变量,接收的是 可调用对象,三种不同的可调用对象的传入,可能是要实例化出 不同的函数出来的,所以,对于上述 static 的原创 2023-10-10 20:39:02 · 630 阅读 · 0 评论 -
用C++实现Date类
我们先实现一个 > 的运算符重载,然后再实现一个 == 的运算符重载:那接下来我们就可以调用这个两个 重载函数,来实现其他的 函数:例如:< 就是!> &&!利用这样的逻辑,我们就可以这样写:需要注意的是:上述后面 运算符重载函数 的实现技巧不仅仅可以用在 Date 简单简单类当中,因为后序的技巧只是在调用 对应的重载函数。所以这种技巧在如何类当中都可以使用。原创 2023-04-27 23:02:08 · 972 阅读 · 0 评论 -
C++ 初始模板(函数模版 和 类模版)
像上述这样使用 模板来实现的 编程,也被称为是 泛型编程,因为这里的 函数并不是针对某一种 类型,而是针对 很多的类型。原创 2023-05-21 10:10:34 · 1052 阅读 · 0 评论 -
C++ 类和对象(上)
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1.)声明和定义全部放在类体中,需注意:成员函数如果在类中定义,默认这个函数是内联的。原创 2023-04-23 19:10:02 · 561 阅读 · 0 评论 -
C/C++ 内存管理 new delete operator new与operator delete函数 内存泄漏
对于new 和 delete 我们上述也说过了,new 是先调用 operator new 函数,来开辟空间,然后调用这里类型的构造函数;而 delete 是先调用西沟函数,然后再 调用 operator delete 释放空间。new[] 是调用operator new函数完成N个对象空间的申请,然后在申请的空间上执行N次构造函数。原创 2023-05-16 19:33:02 · 839 阅读 · 0 评论 -
C++ 构造函数-2 (初始化列表 - explicit - static 成员 - 只能在栈/堆上创建对象的类)
也就是说,在C++当中,这个位置不认为是初始化的地方:如上图,这个只是赋值。在这个位置才认为是 初始化。我们之前说过,当我们初始化一个成员的时候,如果是内置类型,不进行处理:但是也不是都不处理,如果这个内置类型,在类当中是定义给了值的:这个不是初始值,这个是 给 初始化列表的缺省值,也就是说,如果我们不对这个内置类型进行处理,那么这个x 就会被 赋 1 (缺省值)这个值,如果我们在初始化列表当中对这个x 进行了赋值,那么这个x 就是 在初始化列表当中初始化的值。原创 2023-05-10 20:16:23 · 756 阅读 · 0 评论 -
C++ 赋值运算符重载
在 运算符重载当中,我们需要注意的是:不能通过连接其他符号来创建新的操作符:比如operator@重载操作符必须有一个类类型参数用于内置类型的运算符,其含义不能改变,例如:内置的整型+,不 能改变其含义作为类成员函数重载时,其形参看起来比操作数数目少1,因为成员函数的第一个参数为隐藏的this: .注意以上5个运算符不能重载。这个经常在笔试选择题中出现。是否要重载运算符,要看这个运算符实现效果对这个类是否有意义。原创 2023-04-27 18:57:14 · 2029 阅读 · 0 评论 -
C++ - 命名空间 - cout cin - 缺省参数 - 引用 - 函数重载 (18000字超详细介绍)
int data;嵌套主要为了在命名空间里面去区别重命名,假设要定义一个很大的库,那么这个库中会定义命名空间,那么这个空间中成员会很多,多就容易导致冲突,所以我们在命名空间里面在去定义命名空间来区别外层最大的命名空间中的重命名。访问嵌套宏的命名空间成员的书写格式(假设有N层最外层为N):N层命名空间名::N-1命名空间名:: ······ ::需要访问的成员所在命名空间的名字::成员名// 自己定义的头文件。原创 2023-04-18 19:55:55 · 1013 阅读 · 0 评论 -
C++ 类和对象(中)构造函数 和 析构函数 ,const成员
assert(ps);assert(0);return;public:perror("malloc申请空间失败!!!");return;_size = 0;我们就可以直接把在C++当中 实现的 初始化函数 copy 在这个构造函数中。这个构造函数在创建 对象的时候就可以自动的去调用,也就是说,可以帮我们在创建对象的时候自动的去 初始化栈。这样我们在使用 这个栈的时候就不需要再去初始化一遍栈了。原创 2023-04-24 12:21:27 · 529 阅读 · 0 评论 -
C++ 有元 内部类 匿名对象
使用有元就可以突破封装,可以直接对类当中 私有的 成员 成员函数等等进行访问,在某一次上提供了遍历,但是这增大的 耦合性,破坏了封装,所以建议有元不要多用。所谓耦合性就是 ,某两个 东西的 关系,越紧密,耦合性就越大。其实,我们要实现封装的话,关系紧密不是好的结果。 在类当中使用 friend 关键字修饰一个 在类外 的 普通函数(这个函数不属于任何类),也就是用 friend 关键字 在类当中进行声明,在类外面进行定义,那么这个函数就是这个类的友元函数,这个函数就可以访问这个类当中的私有的成员。 如下面原创 2023-05-11 16:30:34 · 746 阅读 · 0 评论 -
C++ string类介绍 - string的迭代器 - 范围for
it 可以理解是指针的解引用,那么就可以使用 解引用来修改字符:原创 2023-05-24 19:58:57 · 1093 阅读 · 0 评论 -
C++ - auto - 内联函数 - 指针空值(nullptr)
内联函数提升程序运行的效率。原创 2023-04-20 09:44:18 · 462 阅读 · 0 评论