自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 函数对象与谓词

函数对象 概念: 重载函数调用操作符的类,其对象常称为函数对象。 函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 函数对象使用 1.函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值 2.函数对象超出普通函数的概念,函数对象可以有自己的状态 3.函数对象可以作为参数传递 1.函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值 class Myadd{ public: int operator()(int v1,int

2021-03-16 12:33:24 106

原创 内存四区

程序运行前: 在程序编译后,生成exe 可执行程序,未执行该程序前分为两个区域。 代码区: 存放cpu执行的机器指令 代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。 代码区是只读的,使其只读的原因是防止程序意外的修改了他的指令 全局区: 全局变量和静态变量存放在此 全局区还包含了常量区,字符串常量和其他常量(const 修饰的全局常量)也存放在此 该区域的数据在程序结束后由操作系统释放。 程序运行后: 栈区: 由编译器自动分配释放,存放函数的参数值,局部变量等 注意事项:不

2021-03-15 20:13:20 108

原创 pair对组

Pair对组创建 : 功能描述:成对出现的数据,利用对组可以返回两个数据 两种创建方式: pair<type,type>p(value1,value2); pair<type,type>p=make_pair(value1,value2); void test() { pair<string, int>p("zhai", 24); cout << p.first << " " << p.second << endl;

2021-03-15 09:34:49 92

原创 函数模板与类模板

C++提供两种模板机制:函数模板,类模板。 函数模板: 建立一个通用函数,其返回值类型和形参类型不具体确定,用一个虚拟的类型来代替。 如:void test(int a);其中的void和int可以先不确定,等执行的时候在确定。 语法: template<typename T> template - 声明创建模板 typename - 表明其后面的符号是一种数据类型,可以用class代替 T - 通用的数据类型,名称可以替换,通常为大写字母 #include<iostream>

2021-03-12 15:51:06 168

原创 多态实现及虚函数

多态是C++面向对象三大特性之一 多态分为两类: 1.静态多态:函数重载和运算符重载属于静态多态 2.动态多态:派生类与虚函数实现运行时多态 区别: 静态多态的函数地址早绑定-编译阶段确定函数地址 动态多态的函数地址晚绑定-运行阶段确定函数地址 class Animal{ public: void speak(){ cout<<"动物在说话"<<endl; } } class Cat:public Animal{ public: void speak(){ cout&

2021-03-10 17:09:04 201

原创 浅拷贝与深拷贝

在c++中,我们创建类时,构造函数有 以下几种: 按参数分为:有参构造和无参构造 按类型分为:普通构造和拷贝构造 如果用户定义有参构造函数,c++不在提供默认无参构造,但是会提供默认拷贝构造函数。 如果用户定义拷贝构造函数,c++不在提供其他构造函数。 其中C++提供的默认拷贝构造函数是浅拷贝,只进行简单的赋值拷贝操作,很容易造成内存重复释放,而深拷贝是在堆区重新开辟空间,可以解决浅拷贝带来的问题。 class Person{ public: Person(){ cout<<"person

2021-03-09 17:22:02 91

原创 const修饰成员函数

首先,我们搞清两个定义: 常函数: 1.成员函数后加const后,我们称这个函数为常函数,如: void show() const{ **** **** } 2.常函数内不可修改成员属性 3.成员属性声明时加关键字mutable后,在常函数中才可以修改,如下: class Person { public: //this 指针的本质是指针常量, 指针的指向是不可以修改的 //const Person * const this ...

2021-03-07 21:13:44 365

原创 析构函数与构造函数

在C++中,有两个特殊的函数,构造函数,析构函数。这两个函数是类中必有的实现,如果我们不提供,编译器会自动提供空的构造和析构函数。 构造函数:进行初始化操作 析构函数:进行清理操作 构造函数语法: 类名(){ 要做的操作 } 1.构造函数没有返回值,也不写void 2.构造函数名称与类名相同 3.构造函数可以有参数,因此可以发生重载 4.程序在调用对象的时候会自动调用构造,而且只会调用一次,所以我们无需手动调用 析构函数语法: ~类名(){ 要做的操作 } 1.析构函数没有返回值,也不写void 2.

2021-03-06 22:09:56 158

原创 C++函数分文件编写实现

在C++中,函数分文件编写一般有四个步骤: 1.创建后缀名为.h的头文件 2.创建后缀名为.cpp的源文件 3.在头文件中写函数的声明 4.在源文件写函数的定义 下面以一个实例为说明对象: 我们要实现一个功能,给出一个圆,和一个点,判断该点是否在这个圆内。 首先,我们创建一个代表“点”的头文件(pointer .h),在这个头文件中写一个类,代码如下: #include<iostream> using namespace std; class pointer { public: void se

2021-03-06 21:34:17 562

空空如也

空空如也

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

TA关注的人

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