自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小浣熊的博客

个人无聊写写学习笔记而已,如有错误欢迎指正

  • 博客(24)
  • 收藏
  • 关注

原创 Ubuntu使用armadillo编译时找不到hdf5

1.进入hdf5最后安装后的目录,比如我的hdf5目录在/usr/local/hdf5,将lib目录中的libhdf5.so、libhdf5.so.10、libhdf5.so.10.x.0这几个文件复制到libarmadillo.so所在的目录。linux环境下安装opencv(c++)编译undefinedreference错误的解决办法-走看看。反映是找不到libhdf5.so.103库,根据下面这个博客,我们应该要安装hdf5这个库。改名后,程序顺利运行。...

2022-07-18 23:00:56 916 3

原创 【C++学习笔记】在C++中读入字符串的几种操作(拯救你的字符串!)

在C++中如何高效灵活的读入字符串一直是一个困扰许多初学者的问题,现在我就来尝试整理一些C++中读入字符串的方法。为了方便速查,我将几种常见的情况做归类:不能读取空格,也不能读取回车1.一般的cin读入方法:即:string s;cin>>s;优点:几乎所有人都知道这么用(博主在整理之前似乎也最熟练用这种)缺点:不能读取空格和回车,非常不方便。能读取空格,但不读取回...

2019-01-15 23:04:56 943

原创 【C++学习笔记】异常处理

在学python的时候,我们知道python中可以利用try。。。。except语句来检查代码中的错误,那么在C++中,有没有类似的体系去帮助程序员发现程序中的异常情况呢,答案是肯定的,现在,我们来介绍一下C++中的异常处理机制。组成C++中异常处理机制包括三部分——检查(try)、抛出(throw)和捕捉(catch)。其工作形式是:把需要检查的语句放在try语句块中,如果在语句块中发现错误...

2019-01-12 20:22:19 248

原创 【C++学习笔记】常对象成员

导语之前我们提到了const修饰符,说到const修饰符可以代替define,实现对常量的更安全的定义,这次我们来讲讲如果在类里面定义常对象或者常成员会出现什么。常数据对象**形式:**与一般数据成员定义类似,只用在前面加const关键字就好了,例如:const int x=2;注意点:1.在定义时一定要对x先说明初值2.如果在类中说明了常数据成员,那么构造函数只能通过初始化列表对该数...

2019-01-11 22:20:28 204

原创 【C++学习笔记】友元

我们知道,在一个类中可以有公用的(public)成员和私有的(private成员)。在类外可以直接访问共有成员,对于私有成员,也可以通过调用公有成员函数的情况下进行访问,但只有类中的函数可以访问本类的私有成员,那有没有例外呢?C++中确实有这个例外,这个例外就是友元。概念友元可以访问与其有好友关系类中的私有成员。友元包括友元函数和友元类。友元机制是对封装机制的补充,利用此机制,一个类可以赋予某...

2019-01-10 20:12:09 504

原创 【C++学习笔记】类中的静态成员及其深度解析

为什么要设置静态成员?有时候一个类的不同对象对于个别数据需要共享,也就是不同对象大家需要一起改变某一个成员,这时,就要求这个被改变的数据成员是固定的(即该类的所有对象用的是同一个拷贝),并且是每一个对象所共有的,这时就用到了静态成员。静态数据成员静态数据成员的声明:静态成员的声明和静态变量的声明一样,用关键字static即可声明。但是静态数据成员必须在类外进行定义和初始化,用::来指明所...

2019-01-09 16:40:10 279

原创 【C++学习笔记】this指针

this指针是什么每一个类的成员函数都有一个隐藏定义的常量指针,我们把它称为this指针。this指针的类型就是成员函数所属的类的类型。每当调用成员函数时,它被初始化为被掉函数所在类的对象的地址。也就是自动地将对象的指针传给它。不同对象调用同一个成员函数时,编译器将根据成员函数的this指针所指的对象来确定应该引用哪个对象的数据成员。这段定义的意思是在成员函数内都隐含这一个指向自己类的对象...

2019-01-09 14:07:33 711

原创 【C++学习笔记】const修饰符

概念const修饰符是C++用于替代define的一个关键字,即用于定义一个常量。一般格式const 数据类型标识符 常数名 = 常量值;或数据类型标识符 const 常数名 = 常量值;例:const int HUMAN = 1;采用这种方式定义的常量是类型化的,它有地址,可以用指针指向这个值,但是不能修改它。说明:1、const必须放在被修饰类型符和类型名前面2、常量一...

2019-01-08 22:50:58 217

原创 【C++学习笔记】趣谈引用

概念:在将引用的概念前,我们要不high一点,先听听歌放松一下(嘿嘿嘿):https://music.163.com/#/song?id=476114873听完《达拉崩吧》是不是觉得瞬间有精神了。好了我们回想一下这首歌的歌词,这首歌造成的一个困境是这个世界里所有成员的名字都很长,骑士光骑士就叫“达拉崩吧斑得贝迪卜多比鲁翁”,高达13个字的名字。这么长的名字带来了什么问题?如果你把骑士的...

2019-01-07 20:30:01 189

原创 【C++学习笔记】析构函数

概念析构函数是一种特殊的成员函数,它执行与构造函数相反的操作,通常用于撤销对象时的一些清理任务,最常见的使用情景有函数调用结束后形参的收回、delete删除等。特点析构函数与构造函数名字相同,但它前面必须加一个波浪号。析构函数不能有参数,不能重载,一个类中只能有一个析构函数。(考试常考:一个类可以有多个构造函数但只有一个析构函数。)析构函数每个类必须会有,如果没有定义析构函数,系统会调...

2019-01-07 19:26:05 568

原创 【C++学习笔记】拷贝构造函数以及深拷贝和浅拷贝

概念拷贝构造函数是一种特殊的构造函数,其形参是本类对象的引用。其作用是使用一个已经存在的对象去初始化另一个同类的对象。说明1.在定义时通过等于号复制对象时,系统会自动调用拷贝构造函数。(注意,不是在任何时候等于号赋值都可以调用拷贝构造函数)2.拷贝构造函数与原来构造函数实现了函数的重载。(拷贝构造函数是构造函数的一个重载)使用情景一个对象作为函数参数,以值传递的方式传入函数体;...

2019-01-07 16:44:48 905

原创 【C++学习笔记】类(二)内联函数与外联函数

定义内联函数:定义在类体内的函数外联函数:定义在类体外的函数。在类中,内联函数和外联函数执行代码的效率是一样的,但是内联函数要优于宏定义,因为编译器一般认为内联函数会更接近一般函数,会与一般函数一样进行调用。内联函数的定义隐式声明 直接将函数定义在类内 class Human{ public: string getName(){return na...

2019-01-06 20:38:46 3017 1

原创 【C++学习笔记】类(一)

这一次更新是出于复习目的的更新,算是回顾一下类的知识点吧类是什么如果把编程看作是另一个世界的话,那么程序员就像是这个世界里的上帝,或者说的本土化一点,我们就是这个自己定义出的世界里的“女娲”。我们用泥巴捏出一个个生物(定义类、构造类的实例),并时不时补补天(改bug),在C++的世界里,类就是我们要捏的那个“小泥人”。假如我们是女娲,我们在捏一个生物的过程中总是要思考以下问题:我的人长什么...

2019-01-06 20:23:39 131

原创 【算法】求质数常见的三种方法

最近新开了一个栏目,打算记一些常见问题的算法,以后说不定有用到可以套用一些。质数的定义质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。这次我们的例题是:求n以内的质数。(其中 n是传入的参数)。这里我们介绍三种常见方法:1.完全遍历法:这种算法比较基本,对于每个数n,将n依次从2除到n,然后对余数进行比较,如...

2018-12-25 17:11:45 28830 2

原创 【C++学习笔记】模板(二)——类模板

这次我们来介绍一下类模板:类模板的定义形式template<class Type>class ClassName{//具体内容};或:template <typname Type>class ClassName{//具体内容};类模板成员函数的类外定义形式template<模板参数表><函数类型><类模板名&g...

2018-12-23 16:45:57 186

原创 【C++学习笔记】模板(一)

模板的概念模板是实现代码复用的一种手段,是C++重要的特征之一此前在定义函数与类时,必须明确指明其中用到的变量的数据类型。如果需要对不同类型的数据进行相同的处理,就需要重新定义函数或者类。我们知道函数是一种代码复用的方式,通过定义不同的函数实现不同的操作,但是函数有一个问题,就是每次定义函数要指定数据类型,这在普通的函数中当然没关系,但是,如果我需要对不同的数据进行相同的操作时,在没有模板...

2018-12-23 14:30:03 206

原创 【C++学习笔记】运算符重载(二)

我们回顾一下运算符重载的特点:运算符重载函数名必须为:operator<运算符>。运算符的重载是通过运算符重载函数来实现的。对于二元运算符重载函数,函数的参数通常为一个即右操作数,运算符的左操作数为调用重载函数时的对象。对于一元运算符重载函数,运算符的左操作数或右操作数为调用函数的对象。运算符重载函数的返回类型:若对象进行运算后的结果类型仍为元类型,则运算符重载函数的返回类型为...

2018-12-18 22:29:43 232

原创 【C++学习笔记】运算符重载(一)

在C++中我们定义了自己专属的类,但是随着类的增加,以及里面成员复杂度的提高,以前我们常用的运算符就不能很好的处理新出现的数据类型了,这时,就有一个很“异想天开”的想法了——我们自己定义运算符!运算符的重载运算符重载是使同一个运算符作用于不同类型的数据时具有不同的行为。例如我们声明一个点类point和它的对象point p1(1,1),p2(3,3),并希望能使用“+”运算符来实现表达式“p1...

2018-12-16 19:36:08 160

原创 【C++学习笔记】虚函数(二)

虚函数与重载函数的关系我们现在来比较一下规则比较多的虚函数和规则比较少的重载函数之间的差别:普通函数重载时,其函数的参数个数或者参数类型必须有所不同,函数的返回类型也可以不同。(这个不同是比较严格的不同,是涉及本质的)重载函数: 要求函数名、返回类型、参数个数、参数的类型和顺序与基类中的虚函数完全相同。如果发生不同则分以下两种情况:1.返回值类型不同,其他相同--------&gt...

2018-12-12 09:31:04 232

原创 【C++学习笔记】虚函数(一)

12.3 昨天居然断更了,唉,写博客真是很需要毅力呀,更新上今天的学习笔记。上次我们讲到多态性的定义以及简述了实现方式以及静态编译和动态编译的概念。这次,我们来具体讲一讲虚函数。什么是虚函数在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派...

2018-12-11 23:03:21 3541 3

转载 【C++学习笔记】多态性

今天我们来讲一下面向对象的程序设计的第三个特点:多态性。所谓多态性就是不同对象收到相同的消息时,产生不同的动作。多态性有下面两种描述:1.具有不同功能的函数可以用同一个函数名。(重载、虚函数)2.向不同的对象发送同一个消息,不同对象在接收消息后产生的行为不同。多态有三种实现形式:函数重载运算符重载虚函数多态的分类:联编的概念联编就是把函数名和函数代码连接在一起的过程。静态与...

2018-11-30 10:06:16 256

转载 【C++学习笔记】赋值兼容规则

定义及其理解:所谓赋值兼容规则,是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。这样,公有派生类实际上就具备了基类的所有特性,凡基类能解决的问题,公有派生类也能解决。这段话不太好理解,说白了就是:如果一个类是从一个基类公有继承过来的,那么这个派生类就可以替代基类(但基类不能替代派生类)。再直白一点是:小灵通可以打电话,小灵通派生出功能更多的智能机类,如果我们只要求打电话的智能,...

2018-11-29 22:29:27 656

转载 【C++学习笔记】虚基类(二)

上一期由于写累了,偷了点懒,就没把注意点放完,这次继续。(3)若同一层次中同时包含虚基类和非虚基类,应该先调用虚基类,再调用非虚基类。(同一层中:同一级的继承中)(4)对于多个虚基类,构造函数执行顺序任然是先左后右,先上后下。(5)对于非虚基类,构造函数的执行顺序也是先左后右,先上后下。(6)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类构造函数。这四点体现了在同级情...

2018-11-29 17:36:42 842

原创 【C++学习笔记】虚基类(一)

1.为什么要引入虚基类?在类的继承中,如果我们遇到这种情况: “B和C同时继承A,而B和C都被D继承”在此时,假如A中有一个函数fun()当然同时被B和C继承,而D按理说继承了B和C,同时也应该能调用fun()函数。这一调用就有问题了,到底是要调用B中的fun()函数还是调用C中的fun()函数呢?在C++中,有两种方法实现调用:(注意:这两种方法效果是不同的)使用作用域标识符来唯一...

2018-11-27 23:50:57 34853 16

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除