
C++
文章平均质量分 70
纸境止境
暂无
展开
-
【C++】59 右值引用
1、基本概念2、左值和右值3、右值引用4、左值持久: 右值短暂(transient)5、变量是左值原创 2022-11-15 10:09:10 · 424 阅读 · 1 评论 -
【C++】60 alignas 和[nodiscard]
1、alignas语法2、alignof语法3、[[nodiscard]]语法原创 2022-11-15 10:08:25 · 1177 阅读 · 0 评论 -
【 C++】11 C++的继承
1、继承方式2、继承的对象的结构查看方式3、继承中的同名成员处理4、继承静态变量成员处理5、多继承6、菱形继承7、子类构造函数原创 2022-11-15 10:06:47 · 649 阅读 · 0 评论 -
【C++】09 运算符重载
文章目录1、加号运算符重载2、左移运算符重载3、重载 = 运算符4、重载()运算符5、重载==运算符6、类外重载*运算符7、重载++(前置++和后置++)8、强制类型转换重载1、加号运算符重载 通过在类中,或者全局,来实现 加号的重载。class Person{public: int A; int B; //1、通过成员函数重载 + 号 Person operator+(Person &p){ Person temp; temp.A = this.A + p.A; t原创 2022-05-30 09:27:06 · 102 阅读 · 0 评论 -
【C++】08 类与对象(二)
文章目录1、类对象作为类成员2、静态成员函数static3、this指针4、空指针访问成员函数5、const修饰成员函数6、友元1、类对象作为类成员 C++类中的成员可以是另一个类的对象,我们称该成员为 对象成员class A{}class B{ A a;} 这个例子中,类B中有 类A的实例化对象 作为成员,我们称 A为对象成员。 在构造的时候,先是 对象成员类A构造,再是类B构造; 在析构的时候,先是 类B析构,再是 对象成员类A析构。2、静态成员函数static原创 2022-05-30 09:25:33 · 188 阅读 · 0 评论 -
07.1 类的的补充
文章目录1、对象的初始化2、类的隐式转换3、explicit4、成员函数末尾的const5、mutable6、cosnt成员变量的初始化7、=default8、=delete1、对象的初始化 可以注意一下这些初始化的方式方法。class Time{private: int Hour, Minute, Second;public: Time(int Hour, int Minute, int Second){ this->Hour = Hour; this->Minute原创 2022-05-23 23:07:33 · 281 阅读 · 2 评论 -
07 类与对象(一)
文章目录1、C++的内存模型2、引用3、class和struct的区别4、构造函数和析构函数5、构造、析构函数的分类6、拷贝构造函数的调用的三种情况7、类中的构造函数调用规则8、深拷贝与浅拷贝9、初始化列表1、C++的内存模型①堆(heap) 可以使用关键字 new 和 delete 来申请和删除内存,就算是局部变量,如果不手动释放的话,它也会一直存在。②栈(stack) 栈中存放着:局部变量、函数形参、局部常量。③静态存储区 主要存放:局部静态变量、全局常量指针。④常量存储区原创 2022-05-23 23:06:58 · 198 阅读 · 0 评论 -
06 动态内存
文章目录1.申请新的内存2.基本数据类型初始化内存3.数组类型内存初始化4.数组用 `new` 或者不用的区别5.删除内存6.当运行的时候,没有足够内存7、堆内存定义的初始化link:geeksforgeeks1.申请新的内存 模板:pointer-variable = new data-type; 以下是使用实例:int *p = NULL; // 指针初始化为空p = new int; // 然后对变量索取内存等价于↓↓↓int *p = new int;原创 2022-05-23 23:06:03 · 231 阅读 · 0 评论 -
【C++】05 特殊操作符
文章目录1.常见操作符2.sizeof operator3.Comma Operator4.Conditional Operatorlink:1.常见操作符 (unary operator:一元运算符)2.sizeof operator 个人感觉一般当成一个函数来使用就好了。3.Comma Operator 逗号运算符:指的是会运算前面的,然后放着不管,然后再运算后面的 并返回后面计算的值。int i = (5, 10); /* 10 这个值被分配给 i 了*/int j =原创 2022-05-17 17:58:21 · 252 阅读 · 0 评论 -
【C++】04 循环的高级用法
文章目录1.C++中的Range-based的循环2.C++中的for_each循环link:1.C++中的Range-based的循环for ( range_declaration : range_expression ) loop_statement 如上面代码所示,这个for中有两个参数,一个是参数声明,另一个是循环的主体。可以注意的是,它甚至没有大括号。 以下是一些实例:#include <iostream>#include <vector>原创 2022-05-17 17:57:04 · 395 阅读 · 0 评论 -
【C++】03 变量种类
文章目录①局部变量②全局变量 gobal③静态变量 static④自动变量 auto⑤外部变量 extern⑥固定常量 const⑦实例变量⑧实例变量 与 静态变量link:①局部变量#include <stdio.h>void function() { int x = 10; // local variable }int main(){ function();} 像上面这种在函数体里面声明并定义的变量,只能在函数体里面使用,称之为 局部变量。②全原创 2022-05-17 17:56:18 · 252 阅读 · 0 评论 -
【C++】02 extern
文章目录1.声明和定义的区别2.函数 和 “extern”3.变量 和“extern”4.extern 用于多文件5.extern和const的结合运用6.总结link :有好些例子可以参考。(此文中的定义(Defintition)和许多处说的“初始化”是一码事哈。)1.声明和定义的区别(Declaration and Definition) ①声明只是告诉程序它的存在,并不分配内存给它,当一个 变量 或 函数 被定义的时候,系统就会给它分配内存。 ②一个 变量 或 函数 可以被声明多次原创 2022-05-11 09:08:49 · 730 阅读 · 0 评论 -
【C++】01.1 RTTI(运行时编译)和dynamic_cast
文章目录1、RTTI2、dynamic_cast3、typeid1、RTTI RTTI(RunTime Type Identification),运行时类型识别。通过运行时类型识别,程序能够使用父类的 指针 来检查这些 指针 所指向资子类对象。RTTI这个功能主要就通过dynamic_cast和typeid来实现。2、dynamic_cast 专门用于 父类指针 转 子类指针,父类中必须有一个虚函数。如果转换失败,程序会抛出 std::bad_cast,这是在标准库头文件中有定义的,可以使用 t原创 2022-05-11 09:08:06 · 421 阅读 · 0 评论 -
【C++】01 四种转换:static_cast, dynamic_cast, const_cast and reinterpret_cast
link Question:What are the proper uses of:static_castdynamic_castconst_castreinterpret_castC-style cast (type)valueFunction-style cast type(value)How does one decide which to use in which specific cases? Answer:static_cast: static_cast is th原创 2022-05-11 09:06:43 · 179 阅读 · 0 评论