加载中...

----------请检查你的网络设置

new与malloc的不同

new/delete与malloc/free的不同:①new/delete分配内存的位置是自由存储区,malloc/free分配内存的位置是堆自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区堆是操作系统所维护的一块特殊内存,用于程序的内存动态...

2018-04-15 16:51:24

阅读数 85

评论数 1

extern关键字

extern关键字:使用:extern int k;作用:告诉编译器:整型变量k是存在的,你需要在其它地方找!当然这个k必须是个全局变量在一个文件中间定义了一个全局变量k,那么在之前如果想使用k就必须extern声明引用另一个文件中的全局变量注意:只能声明,不能进行赋值操作,例如&quot...

2018-04-15 16:21:35

阅读数 54

评论数 0

C++字符串输入输出转换

<sstream>输入输出控制类istringstream类:用于执行C++风格的串流的输入操作ostringstream类:用于执行C风格的串流的输出操作strstream类:同时可以支持C风格的串流的输入输出操作字符串输入流(istringstrea...

2018-04-10 21:17:12

阅读数 117

评论数 0

C++输出操纵符

插入运算符(<<)为所有标准C++数据类型预先设计的,用于传送字节到一个输出流对象包含头文件"#include<iomanip>"普通操纵符:插入运算符与操纵符一起工作很多操...

2018-04-10 19:31:21

阅读数 372

评论数 0

C++类模板

类模板的作用:使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型类模板的使用:template<模板参数表> class 类名 { …… };如果需要在类模板以外定义其成员函数,则要采...

2018-04-08 20:11:03

阅读数 62

评论数 0

C++函数模板

函数模板作用:同一功能的函数可能会因为类型问题要写两个甚至更多,比如取绝对值,对整数取绝对值和对浮点数取绝对值是一样的,然而都要处理的话必须写两个函数,这样非常麻烦,使用函数模板就可以解决这个问题(写一个通用类型函数)函数模板定义:函数模板定义形式:template<模板参数...

2018-04-08 19:33:53

阅读数 58

评论数 0

static_cast与dynamic_cast类型转换

static_cast:类型转换:static_cast<type>(exdivssion),例k = static_cast<double>(1234)①把空指针转换成目标类型的空指针②把任何类型的表达式转换...

2018-04-07 23:48:18

阅读数 82

评论数 0

override与final

C++11新特性:在派生类中,重写(override)继承自基类成员函数的实现时,要满足如下条件:基类中,成员函数声明为虚拟的(virtual)基类和派生类中,成员函数的返回类型和异常规格必须兼容基类和派生类中,成员函数名、形参类型、常量属性和引用限定符必须完全相同如此多的限制条件,导致了虚函数重...

2018-04-07 22:19:34

阅读数 121

评论数 0

纯虚函数与抽象类

纯虚函数:virtual 函数类型 函数名(形参表) = 0;作用:在许多情况下基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,就可以将它的实现留给该基类的派生类去做例如动物作为一个基类可以派生出老虎、狮子等子类,但动物本身生成对象明显不合常理性质:纯虚函数可以让类先具有一个操作名称,而...

2018-04-07 21:17:08

阅读数 62

评论数 0

虚函数表与动态绑定

(你可能会有一个疑问:编译器是如何实现虚函数的呢?)虚表:每个多态类有一个虚表(virtual table)虚表中有当前类的各个虚函数的入口地址每个对象有一个指向当前类的虚表的指针(虚指针vptr)动态绑定的实现:构造函数中为对象的虚指针赋值通过多态类型的指针或引用调用成员函数时,通过虚指针找到虚...

2018-04-07 20:50:05

阅读数 100

评论数 0

虚析构函数

虚析构函数:可通过基类指针删除派生类对象#include<iostream> using namespace std; class Base { public: Base(int x) { q = new int; *q = x; ...

2018-04-07 19:31:40

阅读数 47

评论数 0

虚函数与多态

多态性:即让父类的指针有“多种形态”用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数C++支持两种多态性:编译时多态性,运行时多态性编译时多态性:通过重载函数和运算符重载实现运行时多态性:通过虚函数和继承实现虚函数:声明:virtual 函数类型 函数名(形参表)虚函数是...

2018-04-07 17:46:59

阅读数 92

评论数 0

运算符重载的非成员函数形式

运算符重载为非成员函数的规则:函数的形参代表依自左至右次序排列的各操作数重载为非成员函数时参数个数 = 原操作数个数(后置++、--除外,它们仍然为了区分前置++、--要强行加个int)至少应该有一个自定义类型的参数(例如"Typ1 operator + (int, double...

2018-04-06 01:24:57

阅读数 1539

评论数 0

单目运算符重载

前置单目运算符重载规则:设U为前置单目运算符,oprd为类A的对象,则U应被重载为A类的成员函数方式:oprd.operator U()后置单目运算符重载规则:后置单目运算只有两个:"++"和"--"很显然"...

2018-04-06 00:53:19

阅读数 143

评论数 0

简单运算符重载

运算符重载的规则:运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时导致不同的行为例如string类里面可以通过"str1 += str2"实现两个字符串的拼接C++几乎可以重载全部的运算符,而且只能够重载C++中已经有的以下五个运算符...

2018-04-05 23:36:22

阅读数 86

评论数 0

虚基类

前置:同名隐藏与二义性情景解释:暑假结束了,一科作业都没有写的你慌了起来,而班里的大部分同学也都只写了一部分而已,所以不想欠下一点作业的你只好向多个人借作业抄以保证一科都不漏,当然啦,如果当中A同学和B同学都完成了C科作业,你肯定只用抄其中一份就OK了虚基类:需要解决的问题:当派生类从多个基类派生...

2018-04-05 20:50:26

阅读数 316

评论数 0

同名隐藏与二义性

当派生类与基类中有相同成员时:对应的基类同名成员被隐藏①若未特别限定,则通过派生类对象使用的是派生类中的同名成员。②如要通过派生类对象访问基类中被隐藏的同名成员,应使用基类名和作用域操作符(::)来限定。二义性问题:如果从不同基类继承了同名成员,但是在派生类中没有定义同名成员,“派生类对象名或引用...

2018-04-05 20:19:23

阅读数 91

评论数 0

派生类的构造复制与析构

派生类的析构函数析构函数和构造函数一样不被继承,派生类如果需要,要自行声明析构函数声明方法与无继承关系时类的析构函数相同不需要显式地调用基类的析构函数,系统会自动隐式调用先执行派生类析构函数的函数体,再调用基类的析构函数派生类的复制函数一般都要为基类的复制构造函数传递参数。复制构造函数只能接受一个...

2018-04-05 19:28:02

阅读数 80

评论数 0

指针和引用的相同与不同

指针:存储地址的变量,指向内存的一个存储单元,指针是实体引用:变量的别名,和原来的变量本质上是同一个东西相同点:都是地址的概念(一个是某块内存的地址,一个时某块内存的别名)不同点:存在常量指针,不存在常量引用"sizeof(引用)"得到的是所指向对象的大小,而&...

2018-04-05 17:28:14

阅读数 59

评论数 0

基类与派生类的类型转换

类型转换规则:公有派生类对象可以被当作基类的对象使用,反之则不可派生类的对象可以隐含转换为基类对象派生类的对象可以初始化基类的引用派生类的指针可以隐含转换为基类的指针通过基类对象名,指针只能使用从基类继承的成员#include<iostream> usi...

2018-04-05 14:12:47

阅读数 439

评论数 0

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