C++
文章平均质量分 66
技术小白yhx
爱学习,爱生活
展开
-
C++复习之路七——类
类的主要思想就是数据抽象和封装。一、定义一个类我们首先来看一个例子:class Test // 类名{ public: //访问说明符,public之后的所有成员可以在整个程序内被访问。 void print() // 成员函数, 打印出成员变量的值。 { cout << m_a << endl; } private: //访问说明...原创 2018-04-18 19:30:05 · 303 阅读 · 0 评论 -
C++复习之路十五——虚析构函数
之前复习了虚函数,今天来复习虚析构函数。虚析构函数也是析构函数,它也没有返回值和参数。之所以叫它虚析构函数是因为在普通的析构函数之前加了一个virtual关键字。虚析构函数的作用我们先来定义这样的一个类A,然后B类继承它,在这两个类里面都声明了一个指针,我们在构造函数里给它们分配了内存空间,并且让它们指向了一个含有十个char类型的数据的数组。class A{public: A() { c...原创 2018-04-30 00:36:31 · 182 阅读 · 0 评论 -
C++复习之路十四——函数重载和重写
在C++中我们引入了函数的重载和重写,但是好多时候我们往往会将这两个概念搞混。今天就来讲讲这两个概念的区别。函数重载在同一个作用域中,名字相同,但是参数列表不同的函数称为重载函数。【注意】:这里的参数列表不同,是指的参数的类型,个数不同。我们不能通过函数的返回类型来判断它们是不是重载函数。下面我们来看一个函数重载的例子:int func(int a, int b){ int c = a + b...原创 2018-04-29 00:13:56 · 181 阅读 · 0 评论 -
C++复习之路十三——虚函数和多态
一、C++三种特性封装:打破了C语言函数的概念,可以将实现细节隐藏起来,使得代码模块化继承:使得代码能够重用,提高了编程效率多态:接口重用,在以后写代码的时候,大框架不需要改变,就能够使用之后写的代码。二、多态的具体实现要实现多态就必须先得有继承。我们先来看一个例子。class Parent{public: void print() { cout << "打印Parent...原创 2018-04-26 20:59:28 · 174 阅读 · 1 评论 -
C++复习之路十二——类继承的构造函数和析构函数执行的顺序问题
一般定义类的时候,我们都会定义构造函数和析构函数,如果我们也想继承这些类,就得知道基类和派生类的构造函数的调用顺序,以及析构函数的调用顺序。(以public继承方式为例)一、构造函数的调用顺序我们先来定义两个类,Child类通过public继承Parent类。class Parent{public: Parent(int a, int b); ~Parent(); void printP...原创 2018-04-25 20:07:22 · 376 阅读 · 1 评论 -
C++复习之路十——运算符重载
一、运算符重载的介绍运算符重载就是给一些运算符赋予新的功能,使其能够用于新的数据类型,而不仅仅局限于基本数据类型。其实在我们刚开始学习c++的时候我们就已经接触了运算符重载,我们在c++中的输出数据都是用的这样的形式int a = 0;cout << a;<<这个左移运算符就是运算符重载,我们之前都是使用这个运算符完成左移操作的,但是在c++中我们用它来输出数据。【注意】...原创 2018-04-21 21:26:47 · 223 阅读 · 0 评论 -
C++复习之路十一——类的继承
一、复习三种访问控制符public:修饰的成员变量或者方法,可以在类的外部或者类的内部使用private:修饰的成员变量或者方法,只能在类的内部使用,外部不能使用protected:修饰的成员变量或者方法,只能在类的内部或者子类内部使用,不能在类的外部使用这三种访问控制符可以修饰类的成员属性,同时在继承的时候也能够修饰其继承的方式二、类的继承通过继承联系在一起的类构成一种层次关系,通常在层次关系的...原创 2018-04-25 00:25:13 · 190 阅读 · 0 评论 -
C++复习之路九——深拷贝和浅拷贝
我们在写代码的时候经常会用到拷贝,但是有时候默认的拷贝方式就会产生致命的错误。比如我们定义的类的内部十分复杂,如果用编译器给我们提供的默认拷贝构造函数就会出现错误。我们应该知道何时我们需要自己手动写拷贝构造函数。一、深拷贝和浅拷贝浅拷贝:只是拷贝了指针变量本身,但是没有把它指向的内存重新分配空间。深拷贝:不仅拷贝了指针变量,而且把其所指向的内存重新分配了一次内存空间。我们来看一个例子比较这两种拷贝...原创 2018-04-20 20:01:00 · 236 阅读 · 0 评论 -
C++复习之路八——友元
从上一篇博客可以知道,类可以通过访问说明符来控制类里面的成员是否能够被外部成员访问。public:访问说明符表示其之后的成员可以被类的外部成员访问,也就是可以被整个程序访问。private:访问说明符表示其之后的成员只能被类里面的成员函数访问,但是外部的成员是不能访问的。一、友元的介绍有的时候我们想访问类里面的private成员,同时又不希望它成为类的成员函数,这个时候我们只需要把这个函数作为一个...原创 2018-04-19 11:03:59 · 142 阅读 · 0 评论 -
C++复习之路二——变量和基本类型
数据类型是程序的基础算数类型的分类整型 (包括字符和布尔类型)浮点型【注意】切勿混用带符号类型和无符号类型,否则会出现意想不到的错误。初始化和赋值的区别:初始化:创建一个变量时赋予其一个初始值赋值:把对象的当前值擦除,并且以一个新值来代替。变量的声明和定义的区别:声明:规定了变量的类型和名字定义:规定了变量的类型和名字,还为变量申请了存储空间。【注意】变量只能定义一次,但是可以多次声明。引用:in...原创 2018-04-13 19:50:27 · 177 阅读 · 2 评论 -
C++复习之路三——字符串、数组
一、标准库类型 stringstring表示可变长字符序列,使用string类型前一定要包含string的头文件! 同时string是定义在命名空间std中的,所以使用之前要用using 声明一下。例如:#include <string>using namespace std;比较string类型可以用关系运算符<、<=、>、>=、==、!=来比较两个stri...原创 2018-04-14 11:08:37 · 160 阅读 · 0 评论 -
C++复习之路四——表达式
一、表达式的概念表达式是由一个或多个运算对象组成,运算对象之间可以通过运算符连接起来。二、复合表达式复合表达式是指含有两个或者多个运算符的表达式。【注意】复合表达式进行运算的时候要注意运算符的优先级。三、算数运算符的优先级表算数运算符(左结合律)运算符功能用法+-一元正号一元负号+ expr- expr*/%乘法除法求余expr * exprexpr / exprexpr % expr+-加法减法...原创 2018-04-15 10:15:45 · 299 阅读 · 0 评论 -
C++复习之路五——语句
语句:一个表达式加上一个分号就构成了一个语句。一、最简单的语句——空语句空语句只由一个分号构成。; //空语句【注意】:在写代码的时候不要漏写分号,也不要多写分号。否则我们的代码可能会违反我们的本意if(i == 0); //如果i等于零,不进行任何操作,但是有可能本意是如果i等于0,就给i赋值为1 i = 1; //这样写不管i是否为0,都会给i赋值为1如果想实现以上的想法,应该这样写...原创 2018-04-16 18:13:35 · 189 阅读 · 0 评论 -
C++复习之路六——函数
函数:一个函数的定义通常包含:返回值类型,函数名字,形参列表以及函数体组成。一、函数的调用函数的调用主要完成两个工作:1、用实参初始化函数对应的形参。2、将控制权交给被调函数。【注意】:实参和形参的类型一定要相同。二、函数的返回类型大多数类型都能用作函数的返回类型,但是数组不能作为函数的返回类型,还有一种特殊的返回类型过就是void类型,它表示函数不返回任何值。三、局部对象在C++中,名字有作用域...原创 2018-04-17 14:23:43 · 227 阅读 · 0 评论 -
跟随c++primer学c++(十一、十二章)
这本书的第十一章讲了运算符重载,我觉得这章 的内容是很重要的。我们知道函数可以重载,而且运算符也是可以重载的, 其实在我们刚开始学习c++的时候就接触到了运算符重载到了我们来看一些例子: 1、cout 2、cout 这个就是运算符重载, 运算符重载的格式如下返回值类型 operator 运算符 (参数列表);运算符重载的注意点!!!!1.运算符重载函数名称opera原创 2017-11-06 21:28:14 · 238 阅读 · 0 评论