C++
zjyhyrl123
这个作者很懒,什么都没留下…
展开
-
C++学习十一
string类和标准模板库 string移动构造函数 string(string &&str);//新创建的string为str副本,但是与复制构造函数不同的是,他不保证将str视为const string输入 //c风格字符串输入 char info[100]; cin>>info; cin.getline(info,100); cin.get(info,100); //string对象风格 string stuff; cin>>stuff; getline(ci原创 2020-12-12 17:33:35 · 112 阅读 · 0 评论 -
C++学习十
友元,异常和其他 友元类 class A { public: friend class B;//B为A的友元类,B的所有成员都可以访问A的私有成员,共有成员,前提传入一个A类对象引用为参数 .............. }; 指定特定成员函数为友元 class A { friend void B::set(A&a,int c); ........... }; 这样就指定B类中的set()方法为A类的友元方法,然而这样就会出现一个循环依赖的问题,A类定义中提到了B类,那么应该先定义B原创 2020-12-12 17:33:55 · 55 阅读 · 0 评论 -
C++学习九
C++代码重用 valarray类 使用起来和vector,array类非常相似 包含关系 has-a关系:1.类包含对象数组。2.私有继承 using和typedef原创 2020-12-12 17:34:16 · 53 阅读 · 0 评论 -
C++学习补充
类的实用技术 重载<<运算符 转换函数 构造函数使用new的类 类的继承 类有三种权限分别为public,private,protect,因此就对应三种继承方式,公有继承,保护继承,私有继承。但是对于派生类来说有些东西是相同的,对于继承方式来说并没有区别。 1.构造派生类对象之前,先调用基类构造函数,然后初始化基类数据,以及派生类数据。 2.派生类可以使用基类的方法,前提条件是方法不是私有的 公有继承:建立一种is-a关系,派生类对象也是一种基类对象,可以对基类采取的行为同样适用于派生类原创 2020-12-12 17:34:37 · 85 阅读 · 0 评论 -
C++学习八
类的使用 运算符重载 运算符重载属于C++的一种多态形式,这种多态表现在编译期。而另外一种多态是虚函数,表现在运行期,原因是编译器只能在运行时候才能确定程序到底调用的是父类还是子类的虚函数。 运算符函数格式 operatorop(argument-list) 运算符重载实例 //mytime0.h #ifndef MYTIMEO_H_ #define MYTIMEO_H_ class Time { private: int hours; int minutes; public: Time(); T原创 2020-12-12 17:34:55 · 51 阅读 · 0 评论 -
C++学习七
类和对象 基本特点:抽象,继承,封装,多态,代码重用。概括一下,类就是由许多具有相似特点的对象抽象出来的一种集合,比如男人,女人都可以成为类,所有男人都有其共同特征,每一个具体的男人都可以称之为该类的一个对象。 类权限 累的权限分为公有和私有,公有表示,你想让别人看到,私有意味着你想隐藏起来,不让外界接触。 class world { float mass;//private by default char name[20];//private by default public: void原创 2020-12-12 17:35:14 · 85 阅读 · 0 评论 -
C++学习(对前面的一点补充)
线程存储持续性 之前说过C++有三种存储数据的方式,分别是自动存储,静态存储,动态存储,到了C++11之后又出了一个新的存储方式就是线程存储持续性。如果变量使用关键字thread_local声明的,那么生命周期与所属线程一样长。 变量可见范围之同名变量 寄存器变量 用register关键字修饰的变量,最初是由C语言引进来的,它建议编译器用CPU寄存器来存储自动变量,但是到了C++11之后,完全就是起到一个兼容的作用,兼容旧代码而已,显示指出变量是自动变量。 五种变量 ...原创 2020-12-12 17:35:35 · 66 阅读 · 0 评论 -
C++学习
之前虽然系统的学了一下C++,但是依旧有些琐碎的知识点没有普及,所以这篇就是把平时接触到的一些C++知识点记录下来,以供自己巩固,完善知识模块原创 2020-06-15 18:42:19 · 138 阅读 · 0 评论 -
C++学习六
C++函数进阶版 C++随着C++11的出现,函数方面有很多新的特性,比如 内联函数 内联函数的出现主要是用来提高程序运行速度,它和常规函数的区别在于C++编译器如何把它们组合到程序中去。 从图中可以看到,常规函数的话,程序流程需要切换,有多少个函数调用,就要切换多少次。而对于内联函数来说,不需要切换,但是有多少内联函数就会存在多少个副本。为了使用内联函数这种特性,在声明或者定义函数之前都要用inline关键词修饰。 **注:**内联与宏的区别,宏不传递参数,而是单纯的替代文本,因此一旦涉及到数学运算容易原创 2020-12-12 17:35:52 · 60 阅读 · 0 评论 -
C++学习五
函数-C++编程模块 给出一个基本的函数声明框架 函数参数与按值传递 对于一个函数而言,当它被调用时,参数都是按值传递的,也就是说传进去的只是一个副本,无论你对这个副本做任何修改都是对实际参数没有任何影响的。而在函数中声明的变量包括形参全部都是函数所私有的,被调用时,计算机为它们分配内存,当调用完毕时,计算机会释放这些内存。举个例子 #include <fstream> #include <iostream> using namespace std; void cube(int x原创 2020-12-12 17:36:07 · 98 阅读 · 0 评论 -
C++学习四
分支语句和逻辑运算符 C++主要的分支语句有if语句,switch语句。这两种语句如下表所示。 逻辑运算无非是与,或,非,异或。假设A为1,B为0 break和continue break语句可以跳出for循环,while循环,而且只能跳出最内层的那一个循环,如果多层循环嵌套又想要一次性全部调出怎么办呢?可以考虑goto语句,想知道的话可以百度一下,而continue语句只是结束本次循环,开启下一次循环,注意其中的区别。 文件io 文件io流和我们之前碰到的标准输入流很相似,首先定义两个对象ifstre原创 2020-12-12 17:36:27 · 91 阅读 · 0 评论 -
C++学习三
循环和关系表达式 C++中最主要的循环语句for循环, for循环流程图 while循环 while循环和for循环比起来只有测试条件和循环体,也就说说while循环适用于那种你根本不知道要循环多少层的情况,如果你事先就已经知道要循环多少层,就可以直接使用for循环,否则whil循环。 while(true) { statement 1; } 注意: //第一种情况 int i=5; while(i>0);//分号表示结束,此时while的循环体为空,也就意味着这个循环是死循环 { cout原创 2020-12-12 17:36:43 · 70 阅读 · 0 评论 -
C++学习二
复合类型 C++除了之前提到的基本数据类型还包括复合类型,如数组,结构体,指针 数组 声明一个数组需要具备三点:元素类型,元素个数,数组名 int a[6]={1,2,3,4,5,6};//下表注意从0开始,从左到右是a[0],a[1],a[2],a[3],a[4],a[5] int n; cin>>n; int*a=new int[n];//用new 关键字动态创建数组,优势之一是大小可变化,6用变量n代替,此时值为随机值,如果后面带(),则初始化为0 注1:使用数组过程中千万注意不要越界原创 2020-12-12 17:36:59 · 148 阅读 · 1 评论 -
C++学习一
C++数据类型及处理原创 2020-12-12 17:37:15 · 141 阅读 · 0 评论 -
C++学习零
C++和C的关系 从概念上来说,C语言是一种面向过程的编程语言,而C++是一种面向对象编程的语言。 一句话总结起来C++和C的关系-----C++=C+类+泛型编程+stl容器算法,这是贯穿C++整个学习的一条主线路。 C++代码怎么跑起来呢 上面就是一个C++代码基本的流程,通常会经历源代码->预处理->编译->汇编->链接->可执行文件 在此给出linux平台下C++代码源文件命令行:g++ source.cpp -o exefile ,然后回车键,然后./exefil原创 2020-12-12 17:37:32 · 143 阅读 · 0 评论