C++
zjyhyrl123
这个作者很懒,什么都没留下…
展开
-
C++学习十一
string类和标准模板库string移动构造函数string(string &&str);//新创建的string为str副本,但是与复制构造函数不同的是,他不保证将str视为conststring输入//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 · 147 阅读 · 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 · 71 阅读 · 0 评论 -
C++学习九
C++代码重用valarray类使用起来和vector,array类非常相似包含关系has-a关系:1.类包含对象数组。2.私有继承using和typedef原创 2020-12-12 17:34:16 · 71 阅读 · 0 评论 -
C++学习补充
类的实用技术重载<<运算符转换函数构造函数使用new的类类的继承类有三种权限分别为public,private,protect,因此就对应三种继承方式,公有继承,保护继承,私有继承。但是对于派生类来说有些东西是相同的,对于继承方式来说并没有区别。1.构造派生类对象之前,先调用基类构造函数,然后初始化基类数据,以及派生类数据。2.派生类可以使用基类的方法,前提条件是方法不是私有的公有继承:建立一种is-a关系,派生类对象也是一种基类对象,可以对基类采取的行为同样适用于派生类原创 2020-12-12 17:34:37 · 108 阅读 · 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 · 74 阅读 · 0 评论 -
C++学习七
类和对象基本特点:抽象,继承,封装,多态,代码重用。概括一下,类就是由许多具有相似特点的对象抽象出来的一种集合,比如男人,女人都可以成为类,所有男人都有其共同特征,每一个具体的男人都可以称之为该类的一个对象。类权限累的权限分为公有和私有,公有表示,你想让别人看到,私有意味着你想隐藏起来,不让外界接触。class world{ float mass;//private by default char name[20];//private by default public: void原创 2020-12-12 17:35:14 · 103 阅读 · 0 评论 -
C++学习(对前面的一点补充)
线程存储持续性之前说过C++有三种存储数据的方式,分别是自动存储,静态存储,动态存储,到了C++11之后又出了一个新的存储方式就是线程存储持续性。如果变量使用关键字thread_local声明的,那么生命周期与所属线程一样长。变量可见范围之同名变量寄存器变量用register关键字修饰的变量,最初是由C语言引进来的,它建议编译器用CPU寄存器来存储自动变量,但是到了C++11之后,完全就是起到一个兼容的作用,兼容旧代码而已,显示指出变量是自动变量。五种变量...原创 2020-12-12 17:35:35 · 86 阅读 · 0 评论 -
C++学习
之前虽然系统的学了一下C++,但是依旧有些琐碎的知识点没有普及,所以这篇就是把平时接触到的一些C++知识点记录下来,以供自己巩固,完善知识模块原创 2020-06-15 18:42:19 · 214 阅读 · 0 评论 -
C++学习六
C++函数进阶版C++随着C++11的出现,函数方面有很多新的特性,比如内联函数内联函数的出现主要是用来提高程序运行速度,它和常规函数的区别在于C++编译器如何把它们组合到程序中去。从图中可以看到,常规函数的话,程序流程需要切换,有多少个函数调用,就要切换多少次。而对于内联函数来说,不需要切换,但是有多少内联函数就会存在多少个副本。为了使用内联函数这种特性,在声明或者定义函数之前都要用inline关键词修饰。**注:**内联与宏的区别,宏不传递参数,而是单纯的替代文本,因此一旦涉及到数学运算容易原创 2020-12-12 17:35:52 · 81 阅读 · 0 评论 -
C++学习五
函数-C++编程模块给出一个基本的函数声明框架函数参数与按值传递对于一个函数而言,当它被调用时,参数都是按值传递的,也就是说传进去的只是一个副本,无论你对这个副本做任何修改都是对实际参数没有任何影响的。而在函数中声明的变量包括形参全部都是函数所私有的,被调用时,计算机为它们分配内存,当调用完毕时,计算机会释放这些内存。举个例子#include <fstream>#include <iostream>using namespace std;void cube(int x原创 2020-12-12 17:36:07 · 126 阅读 · 0 评论 -
C++学习四
分支语句和逻辑运算符C++主要的分支语句有if语句,switch语句。这两种语句如下表所示。逻辑运算无非是与,或,非,异或。假设A为1,B为0break和continuebreak语句可以跳出for循环,while循环,而且只能跳出最内层的那一个循环,如果多层循环嵌套又想要一次性全部调出怎么办呢?可以考虑goto语句,想知道的话可以百度一下,而continue语句只是结束本次循环,开启下一次循环,注意其中的区别。文件io文件io流和我们之前碰到的标准输入流很相似,首先定义两个对象ifstre原创 2020-12-12 17:36:27 · 112 阅读 · 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 · 91 阅读 · 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 · 193 阅读 · 1 评论 -
C++学习一
C++数据类型及处理原创 2020-12-12 17:37:15 · 155 阅读 · 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 · 160 阅读 · 0 评论