
c++笔记
狐非
这个作者很懒,什么都没留下…
展开
-
各版本bool的区别
在写代码的过程中经常会遇到多种布尔类型,下面主要介绍三种常见布尔类型bool: 它的意义是0为false非零为true,这种布尔类型也叫原生布尔类型,因为其他版本主要是通过0和1来实现类似的功能,只有它所真正对应的是true和false。#include<iostream>using namespace std;int main(){ bool b = -1; if (b==t原创 2016-12-21 20:29:40 · 478 阅读 · 0 评论 -
类之间的关系
继承前面已经论述过,继承关系是一种纵向关系,是指基类和派生类之间的关系。 在UML图中用空心三角形表示。 关联关联表示:一个类包含另一个类的成员的情况。是一种弱关系。 具体的理解它表示的是两种类的对象需不需要知道对方,如果只是一方需要知道另一方则这种关联又叫单项关联,如果两方均需要知道对方则这种关联叫双向关联。聚合聚合关系表示的是整体与部分的关系,使用空心菱形表示。一个类(假设A)属于另一原创 2017-03-05 21:05:56 · 358 阅读 · 0 评论 -
c++中的异常机制
简介throw:抛,在出错的地方抛出异常信息。 try:尝试捕获throw抛出的异常信息。 catch:有个参数用来接收捕获的异常信息(参数类型需和抛出的错误信息类型保持一致) catch(…):捕获所有异常信息#include<iostream>using namespace std;int divide(int numOne,int numTwo){ if (0 == numT原创 2017-03-05 23:06:41 · 332 阅读 · 0 评论 -
c++基类和派生类的构造析构函数调用顺序
#include <iostream>using namespace std;class Base{public: Base::Base() { cout << "基类构造函数" << endl; } Base::~Base() { cout << "基类析构函数" << endl; }};class Son原创 2017-02-11 13:29:06 · 1617 阅读 · 0 评论 -
c++继承
继承的概念 继承是类与类之间的关系,继承者称为子类,被继承者称为父类。而继承就是子类从父类那里继承父类想让子类继承的一些东西(成员函数,成员变量)。父类和子类也叫基类和派生类。继承的几种方式c++中继承主要有三个方式:public,protected和private三种方式。 这三种修饰符也可以写在类成员前面用以修饰类成员的访问权限,具体用法我这篇博文中有提到:c++类 大致如下:原创 2017-02-11 13:10:14 · 236 阅读 · 0 评论 -
c++类----class
++什么是类?c是面向过程的编程语言,c++是面向对象的编程语言,而c++之所以属于面向对象的语言就是因为类的存在,那么究竟什么是类呢?类的定义 类是定义同一类所有对象的变量和方法的蓝图或原型。类是不能直接拿来使用的,你在使用它之前必须首先对它进行实例化,建立这种类型的一个对象,打个比方如果说对象是一栋楼的话,类就相当于建这所大楼的图纸。如果你想使用这栋大楼的话你只有设计图纸有什么用,你必原创 2016-12-24 21:01:37 · 424 阅读 · 0 评论 -
构造函数
构造函数的定义构造函数是用于对象生成时,为对象的成员变量赋初值的地方。只要有新对象生成就会调用它。构造函数是没有返回值的,所以定义构造函数时只需要使用类名作为构造函数名前面用访问修饰符修饰即可。如果用户没有在类中自己定义构造函数的话,在生成对象的时候编译器会自动调用一个默认构造函数,这个默认构造函数中不包含任何语句。一旦用户自己定义构造函数时默认构造函数就不存在了。#include<iostrea原创 2016-12-31 17:25:42 · 462 阅读 · 0 评论 -
运算符重载 c++
运算符重载形式 重载是c++的一大特性,不仅可以用于一般函数重载,还可以用于运算符重载,对于一些基本数据类型来说运算符可以直接拿来使用,所以运算符重载一般是应用于对象之间,而对象之间的运算符重载主要分为成员运算符重载和友元运算符重载两种形式。成员运算符重载:表示在类内定义的这个与运算符相关的函数是属于类的成员函数。所以他可以直接由对象调用对于双目运算符他只需要一个参数(另外一个参数其实就是调用它原创 2017-01-05 15:20:06 · 865 阅读 · 0 评论 -
引用
引用的含义 引用表示的给一个变量起一个别名,对引用的操作等同于对变量本身的操作。引用的用法因为函数的参数传递只存在 两种方式:1.值传递 :在调用函数时,会替形参在为函数分配的栈区中开辟内存空间并将实参的值拷贝一份给形参,在函数内部对形参的操作并不会影响函数外部实参的值。2.地址传递:本质上也是值传递,只不过传递的值是地址,所以形参拷贝的值也是地址,虽然形参和实参的地址数据存放的地方不一样但它原创 2016-12-24 19:47:36 · 286 阅读 · 0 评论 -
类型转换
c风格的类型转换(type)expression#include<iostream>using namespace std;int main(){ int num = (int)1.0003;//c语言风格类型转换 cout << num<<endl; system("pause"); return 0;} 这种转换是c风格的类型转换,也叫强制转换c++风格原创 2016-12-22 20:53:46 · 285 阅读 · 0 评论 -
内联函数
内联函数 内联函数是为了使调用函数时达到和宏定义形同的功能,之所以不直接使用宏定义是因为宏定义是预处理器来执行命令的,而不是编译器。而预处理器只是就行简单的内容替换,没办法进行语法分析,所以使用了内联函数来解决这个问题。 内联函数是使用inline关键字声明的函数,也叫内嵌函数,它主要的作用是解决程序的运行效率。内联函数的优缺点优点: 内联函数并不会像其他函数一样新建栈,它只会将代码原创 2016-12-22 17:45:09 · 469 阅读 · 0 评论 -
默认实参
默认实参是为了事先提供默认的实参便于更加灵活方便的使用函数#include<iostream>using namespace std;void MyCout(int n=100) //这里的n=100就是默认实参{ cout <<n<< endl;}int main(){ int a=200; //因为MyCout存在默认实参所以我在调用的时候可以不传参数直接调用原创 2016-12-22 17:04:22 · 536 阅读 · 0 评论 -
函数重载导致的二义性
函数重载主要是一个匹配问题,分为精准匹配,提升匹配和类型转换匹配三种:精准匹配#include<iostream>#include "string.h"using namespace std;void MyCout(long n){ cout << "参数为长整形!" << endl;}void MyCout(int n){ cout << "参数为整形!" << endl原创 2016-12-22 15:37:35 · 3964 阅读 · 0 评论 -
重载
函数重载:在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。#include<iostream>using namespace std;void MyCout(int n){ cout << "输入的是整形!" << endl;}void MyCout(float n){ cout << "输入的是浮点型!" <<原创 2016-12-22 11:09:34 · 340 阅读 · 0 评论 -
new delete
堆操作 在c语言中我们对堆进行操作主要通过两个函数 malloc 和 free , 而在c++中提供了更为方便的new和delete来达到同样的功能 但new和delete并不等价于malloc和free,malloc和free是函数,而new和delete是运算符new 和 delete的使用相比较malloc 和free 而言new和delete的用法要简单得多。#inclu原创 2016-12-21 22:06:26 · 424 阅读 · 0 评论 -
域作用符
域作用符域作用符主要用来限定变量的作用域 比如:#include<iostream>#include "string.h"using namespace std;int num = 10; //全局空间int main(){ int num = 20; //栈空间 cout << "当前num的值为:"<<num << endl; system("pause")原创 2016-12-21 21:49:10 · 2059 阅读 · 1 评论 -
头文件的三种标准
标准c++库比如 iostream这种用法是c++特有的,在c语言中是没有的。.h文件比如 stdio.h.h文件是从c语言直接继承来的。在c++中可以通过引用这些头文件来使用c语言中的一些独有的函数.h只是文件名的后缀,所以它只是起到一种区别其他文件的效果,并没有其他特殊的含义。c**格式的比如 cstdbool这种格式的头文件也是从c语言继承来的,与.h类型不同的是它是符合c++规范的,所原创 2016-12-21 20:57:47 · 1174 阅读 · 0 评论 -
函数模板
什么是函数模板函数模板是模板的一种,区别于类的地方只是它修饰的是函数,而类模板修饰的是类。 函数模板出现的目的是为了让程序员可以编写和类型无关的代码。也就是说编写一个函数可以多种类型的参数通用。 函数模板的格式 template <typename 形参名,typename 形参名,...> 返回类型 函数名(参数列表){ //函数体}template 和typename 是关键字,其原创 2017-03-09 17:25:16 · 440 阅读 · 0 评论