c++
啤酒我可以喝一件
我又回来了ヾ(^∇^)
展开
-
算法的时间复杂度和空间复杂度的通俗理解
https://blog.csdn.net/weixin_42447959/article/details/83003233转载 2020-02-15 18:17:42 · 163 阅读 · 0 评论 -
c++对象和类
前言:继续复习c++ primer plus 以用来查漏补缺,这一次复习对象和类这一节一、抽象和类1.我们在设计书写类时,正规的写法是将类的定义放在头文件中,类的定义放在cpp中,另外类的实现也应该在另外一个cpp中。头文件的书写格式:#ifndef STUDENT_H#define STUDENT_H#include <iostream&原创 2019-03-06 17:32:18 · 161 阅读 · 0 评论 -
c++中的输入、输出和文件流
前言:最近又拾起了c++ primer plus,于是学习了这一章,于是写下博客记录以前忽略的。第一节:cout1.关于cout的输出精度,系统默认的是6,也就是显示的总位数,但是如果末尾的数字为0,会省略,比如13.2000的精度为6,但是打印出来为13.2, 0被省略所以如果我们想要修改精度,怎么修改?在cout前用语句:cout.precison(x);//x为想要的精度比如x...原创 2019-03-04 21:15:32 · 4390 阅读 · 2 评论 -
c++中的 const限定符
在以前学习c的时候,如果程序多处出现同一个变量,则需要修改这个常量时,我们只需一个符号的定义即可。我们用的就是#define ,比如#define pi 3.1415而在c++中,我们不在使用define了,而是引用了一个新的东西,就是const限定符用法:在程序的开头:const int a = 45;所以之后可以直接使用a,默认的值就是45,并且不能修改a的值。如果想要改变a的值,只需在开...原创 2019-03-20 19:49:37 · 141 阅读 · 0 评论 -
c++枚举(enum)
c++的enum提供了一种创建符号常量的方式。枚举类型的定义:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为:enum <类型名> {<枚举常量表>};应用举例:enum color_set1 {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color...转载 2019-03-25 19:49:48 · 575 阅读 · 0 评论 -
c++中数组作为参数传入函数
前言:最近再看一个用c++写数组求逆矩阵的程序,那是相当的繁琐,但是很有趣。其中涉及了大量的数组运算,所以数组作为参数传入函数很重要,这里记录一下。一维数组作为参数1.我们除了要将数组名传入函数外,为了规范化,我们还要将数组的大小也要作为参数传入,而不是在函数内部去定义大小。即下面这种形式:int sum_arr (int att[] , int size)2.我们学习c的时候知道数组...原创 2019-04-15 19:23:38 · 75905 阅读 · 9 评论 -
关于访问限制符:protected
前面我们已经介绍了private和public,以及他们在派生类中的应用,这里结合书上的内容介绍protected。protectedprotected称为保护限制,他和private和public既有联系又有区别。1.首先我们回顾下public,如果一个成员时是public,那么他既可以在类内直接访问也可以在类外通过对象直接访问。2.而private修饰的数据成员只能在类内直接访问,而...原创 2019-04-20 19:49:59 · 811 阅读 · 0 评论 -
c++包含对象成员的类
成员对象成员对象:当一个类的成员是另一个类的对象时,这个对象就叫成员对象。我们知道,继承满足的关系是:is a关系,而成员对象满足的关系是has a关系,比如学生类和分数类,显然学生有分数,所以分数类可以作为学生类的成员对象成员对象的构造与析构1、出现成员对象时,如果成员对象的构造函数是有参构造函数,则该类的初始化列表需要对成员对象进行初始化。classMember { priva...原创 2019-04-26 10:03:44 · 3272 阅读 · 3 评论 -
c++抽象类
一、纯虚函数和抽象类前面我们介绍了什么是虚函数,即在某些方法前加上关键字virtual,表示该方法在子类中会被重写。在一个虚函数的声明语句的分号前加上 =0,就可以将一个虚函数变成纯虚函数,其中,=0只能出现在类内部的虚函数声明语句处。纯虚函数只用声明,而不用定义,其存在就是为了提供接口,含有纯虚函数的类是抽象基类.纯虚函数必须在子类中被重写。!!!二、抽象类的特点1.含有纯虚函数的类被...原创 2019-04-22 15:36:54 · 6197 阅读 · 1 评论 -
c++类的继承
前言:距离上一次学习类的基本知识已经过了很长时间,可以到前面的博客去复习一下基本的知识,这一节将重新开始一篇博客,就是类的继承,这一节工作量巨大,是难点,因为不像java中一个子类只能继承一个父类,c++中可以有多个父类,所以逻辑上会难理解。不要紧,我们一点点啃它一个简单的基类(父类)我们首先写一个简单的父类:tabletennisplayer.h注意:我在前面讲到过书写类的标准写法,所以...原创 2019-04-17 18:23:43 · 406 阅读 · 0 评论 -
c++函数模板
前言:这里仅介绍c++primer plus中的简单函数模板和模板重载面向对象的继承和多态机制有效提高了程序的可重用性和可扩充性。在程序的可重用性方面,程序员还希望得到更多支持。举一个最简单的例子,为了交换两个整型变量的值,需要写下面的 Swap 函数: void Swap(int & x, int & y) { int tmp = x; ...原创 2019-04-23 15:35:47 · 190 阅读 · 0 评论 -
c++多态继承和虚函数
前言:我们前一节简单学习了继承,这里继续深入,学习多态和虚函数一、多态多态的意思就是“多种形态”,即同一个方法的功能不同,最典型的例子就是父类的方法在子类中进行重写。这时候,方法的行为取决于你的对象,你建立的是父类,就调用父类的该方法的行为,你建立的是子类对象,就调用子类的该方法的行为。格式:在java中,重写的方法要在末尾中加上关键字override,而在c++中,不再是这样,而是在要被...原创 2019-04-19 16:21:16 · 154 阅读 · 0 评论 -
关于c++中的for循环条件变量
我晕,今天写了一个小程序花了一晚上找bug,最后发现bug出现在for循环条件里面的变量,而且这个问题是以前一直没有注意到的。自己以前一直都是按错误的方式在记问题:代码:for(i=0;i<=5;i++){ j++;}cout << i <<endl;如果我问你,最后i的值为多少,我会回答5,因为for循环里面i<=5,其其实不对,...原创 2019-05-14 22:36:46 · 1291 阅读 · 0 评论 -
Linux下g++编译生成动态链接库.so文件并调用它
参考博文:https://blog.csdn.net/u011057439/article/details/51459620在我的上一篇博客中,我介绍了如何在linux下编译c++程序,下面将进行扩展,用到动态链接库,最后也能实现编译。方法:用命令:gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so //将所有的头文件的cpp统...转载 2019-02-27 18:07:11 · 2763 阅读 · 0 评论 -
linux下在终端编译c++文件
前言:如果你在linux下用c++在gedit中写了一个简单的带头文件的c++程序,那么应该如何编译呢?第一步:写好你的主程序,头文件,头文件的cpp比如:这里我写了一个头文件,三个头文件的cpp,因为我将头文件里面的声明的三个函数分开定义了。test.h:test1.cpp:test2.cpp:test3.cpp:main.cpp:第二部:在在终端下执行语句:g++ -o...原创 2019-02-27 15:24:09 · 1330 阅读 · 0 评论 -
c++之友元类
友元类的作用假设A为B 的友元类,那么可以在A中的private中定义一个B的对象C,并且可以在A中的函数中直接通过c访问B的私有成员或函数,而不需要往这个函数传递参数注意事项1.友元关系不可以传递 2.友元关系的单向性,即一定要搞清楚谁是谁的友元类 3.友元类的数量是不受限制的。 4.需要知道的是,友元的试用破坏了封装性。代码演示time.h#ifndef TIME_H#define TI原创 2017-11-17 11:30:41 · 285 阅读 · 0 评论 -
c++学习补充
1.在类的定义中,一般数据成员设为私有,函数成员设为共有。2.私有成员只能在类内使用,不能再类外,即声明一个对象后,不能用std.mame这种形式去调用私有成员,只能调用共有成员。3.我们知道构造函数是用来初始化数据成员的,但是有比他更好的,那就是初始化列表,他更快,更专业。4.类的定义就是封装5.注意:带有参数的构造函数,参数形式写在构造函数后面,而不是在类的定义后面。6.初始化列表:#inclu原创 2017-11-14 11:36:10 · 206 阅读 · 0 评论 -
c++之函数模板
前言:c++的函数模板就是为了实现使用函数时可以自定义数据类型,有一种重载的感觉几种函数模板的形式1.只有一个参数template<typename T>void display(T a){ cout << a <<endl;}于是在使用这个函数时:就可以为display(3);display(3.21);display('a');display("asc");虽然系统会自动识别原创 2017-11-20 11:38:23 · 201 阅读 · 0 评论 -
c++之类模板
前言:这篇博客不注重讲解。代码myarray.h#ifndef MYARRAY_H#define MYARRAY_H#include <iostream>using namespace std;template<typename T,int ksize,int kval>//这句话必须在class之前,这里为一个参数,2个变量class myarray{ public: myar原创 2017-11-20 15:43:15 · 193 阅读 · 0 评论 -
c++之浅谈vector
什么是vector1.它实质上就是一个数组,只不过他的大小不固定,可以随意插入数据,但是只能在末尾插入。2.他插入的数据不仅为数字,也可以为string(字符串),当插入的为字符串时,要注意一个字符串占据一个位置,而不是一个字母占据一个位置。初始化方式 vector<int> vec; vector<string> vec1; vector<string> vec2(vec1);//原创 2017-11-20 19:48:45 · 181 阅读 · 0 评论 -
c++友元成员函数
什么是友元成员函数a类的成员函数是b类的友元函数。这样a类的成员函数可以调用b的私有成员代码zouxu.h#ifndef ZOUXU_H#define ZOUXU_H#include <iostream>using namespace std;class zouxu;class lulu//而在定义lulu类时,当中又出现了zouxu类,所以在这之前又要加入zouxu类的声明。。注意,这里是原创 2017-11-16 11:31:08 · 403 阅读 · 0 评论 -
c/c++文件的基本操作
前言:本博客内容简略,只是用于记录,方便以后复习查阅。一、这里的所说的文件是什么意思不要觉得我们说的文件就是指txt,或者doc才是文件,其实计算机里面的年东西都是文件。当我们用专门的软件打开他们的时候,可以看到里面的东西,有内存也有二进制代码什么的。二、打开一个文件打开一个文件的格式 FILE *p = fopen("/home/zouux/666","wb");//第一个参数是文件的绝对路原创 2017-12-02 18:07:32 · 1255 阅读 · 0 评论 -
c++之浅谈map
什么是map map就是映射,里面的键和值是对应的代码直接看代码,相信你就能直接理解:int main(){ map<string,string> m;//这里面的两个参数对应了键和值的类型,键也可以为int pair<string,string> p1("a","hello");//键为“a”,值为hello pair<string,string> p2("b","wo原创 2017-11-20 19:54:30 · 343 阅读 · 0 评论 -
浅谈c++的命名空间(namespace)
一、命名空间的作用假设这样一种情况,当一个班上有两个名叫 zouxu 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。 同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。这样,编译器就无法判断您所使用的是哪一个 xyz() 函数。 因此,引原创 2018-03-12 15:41:23 · 1568 阅读 · 0 评论 -
关于析构函数的作用时机
我们知道构造函数是在声明这个对象时就立马执行,而析构函数的作用时机是该对象的作用域结束的时候执行如:则就是在执行到main的}前一步执行但是若主函数为:int main(){ { ctu aa; } return 0;}则是在ctu aa下面的}前一步执行原创 2018-03-12 16:29:34 · 451 阅读 · 0 评论 -
关于c语言中的uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型_t的意思到底表示什么?具体的官方答案没有找到,不过我觉得有个答案比较接近。它就是一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是其它数据类型。uint8_t,uint16_t,uint32_t等都不是什么新的数据类型,它们只是使用typedef给类型起的转载 2018-03-14 09:24:14 · 12369 阅读 · 0 评论 -
ubuntu下安装codeblocks
sudo add-apt-repository ppa:damien-moore/codeblocks-stablesudo apt updatesudo apt install codeblocks codeblocks-contrib如果运行他不出现界面,是因为他的界面被投射在另一快屏幕上了,参考之前的一片博客。原创 2018-04-08 22:15:40 · 134 阅读 · 0 评论 -
基于doxygen的c++注释规范模版
前言:我们知道,在使用doxygen时,他会自动根据你的注释生成所有变量、函数、类…的注释列表,但是如果要让他显示的规范化并且美观,需要你按照规范化的模版进行书写注释。所以下面的模版就是教你如何书写一个规范的注释(注意,这个模版针对的是c++,像c以及其他的语言会有所不同)//////////////////////////////////////////////////////////////...转载 2018-10-17 10:36:44 · 2927 阅读 · 0 评论 -
c++中友元函数
什么是友元函数首先需要知道,友元函数包括全局友元函数以及成员友元函数。全局友元函数也就是这个函数是一个全局函数,成员友元函数即这个函数为另一个类的成员函数。。作用用友元函数可以访问两个或多个类的私有数据。 3.1 类的友元函数在类作用域之外定义,但可以访问类的私有和保护成员 3.2 尽管类定义中有友元函数原型,友元函数仍然不是成员函数 3.3 由于友元函数不是任何类的成原创 2017-11-11 11:21:22 · 1011 阅读 · 1 评论