C/C++
文章平均质量分 88
C/C++使用过程中经验与问题分享
Eleven-boy
这个作者很懒,什么都没留下…
展开
-
C++学习笔记——多态
多态是C++面向对象三大特性之一动态多态的函数地址晚绑定多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定-编译阶段确定函数地址动态多态的函数地址晚绑定-运行阶段确定函数地址动态多态满足条件1、有继承关系2、子类重写父类的虚函数#include <iostream&g...原创 2020-04-05 16:35:01 · 214 阅读 · 0 评论 -
C++学习笔记——继承
1、继承的好处:减少重复代码语法:class 子类 :继承方式 父类子类又称派生类 父类又称基类派生类中成员包含两部分:一类是从基类继承过来的,表现其共性。一类是自己增加的成员,表现其个性。示例在这里插入代码片...原创 2020-03-29 22:07:57 · 182 阅读 · 0 评论 -
C++学习笔记——运算符重载
运算符重载:对已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型1、加号运算符作用:实现两个自定义数据类型相加class Person{public: //成员函数重载加号 //Person operator+ (Person &p) //{ // Person temp; // temp.m_A = this->m_A + p.m_A; //...原创 2020-03-17 20:28:18 · 147 阅读 · 0 评论 -
C++学习笔记——友元
引入友元的目的:让一个函数或类访问另一类中私有成员友元关键字:friend友元有三种实现方式:(1)全局函数做友元(2)类做友元(3)成员函数做友元全局函数做友元class Building{ //告诉编译器goodGay全局函数是Building好朋友,可以访问Building中私有成员 friend void goodGay(Building &bu...原创 2020-03-14 20:39:13 · 225 阅读 · 0 评论 -
C++学习笔记——C++对象模型和this指针
Visual Studio中可直接运行。#include <iostream>#include <string>using namespace std;#define FLAG 4#if FLAG==1/**************************************************************************1、...原创 2020-03-03 21:18:38 · 208 阅读 · 0 评论 -
C++学习笔记——构造函数与析构函数
在visual studio中可直接运行#include <iostream>#include <string>using namespace std;/****************************************************************** 1、构造函数和析构函数 (1)构造函数 格式:类名() {}...原创 2020-03-03 21:13:25 · 270 阅读 · 0 评论 -
C++学习笔记——类和对象之封装
#include <iostream>#include <string>using namespace std;/* **************C++面向对象的三大特性:封装、继承、多态************** 具有相同性质的对象,我们抽象称为类 */ /************************************************...原创 2020-02-28 12:41:35 · 152 阅读 · 0 评论 -
C++学习笔记——函数提高
#include <iostream>using namespace std;#define FLAG 4/*1、默认函数参数在C++中,函数的形参列表中的形参是可以有默认值的语法:返回值类型 函数名 (参数 = 默认值){}Tips:(1)如果某个位置已经有默认值,那么这个位置往后,从左到右都有默认值 (2)函数的声明和定义二者只能有一个有默认参数*/...原创 2020-02-27 14:37:10 · 128 阅读 · 0 评论 -
C++学习笔记——引用
#include <iostream>using namespace std;#define FLAG 6/*3、引用做函数参数作用:函数传参时,可以利用引用的技术让形参修饰实参优点:可以简化指针修改实参*///1、值传递void mySwap01(int a ,int b){ int temp = a; a = b; b = temp; cout &l...原创 2020-02-27 14:33:53 · 145 阅读 · 0 评论 -
C++学习笔记——new操作符
#include <iostream>using namespace std;/* new在堆区开辟数据 delete在堆区释放数据*///1、new基本语法int *func(){ //在堆区创建整型数据 int*p = new int(10);//new返回的是该数据类型的指针 return p;}void test01(){ int *p = f...原创 2020-02-27 14:26:26 · 150 阅读 · 0 评论 -
C++学习笔记——内存分区
#include <iostream>using namespace std;#define FLAG 2/* 内存分区模型: C++程序在执行时,将内存大方向分为4个区 1、代码区:存放函数体的二进制代码,由操作系统进行管理 2、全局区:存放全局变量和静态变量以及常量 3、栈 区:由编译器自动分配释放,存放函数的参数值,局部变量等 4、堆 区:由程序员分配和...原创 2020-02-25 21:39:47 · 193 阅读 · 0 评论 -
C++学习笔记——指针
#include <iostream>using namespace std;//指针:通过指针保存一个地址int main(){ /************************************************************************ *1、定义指针 **********************************...原创 2020-02-19 20:57:50 · 236 阅读 · 0 评论 -
C++学习笔记——结构体
#include <iostream>#include <string>using namespace std;/*结构体属于用户自定义数据类型,允许用户存储不同的数据类型*/void printstu1(struct Student s);void printstu2(struct Student *s);void printstu3(const struc...原创 2020-02-19 20:54:53 · 134 阅读 · 0 评论 -
C语言位运算~构建特定二进制
一、使用移位获取特定位为1的二进制数例1.对于一个整形数a,通过运算使其bit3~bit7为1,bit23~bit25为1,其它位为不变 bit3~bit7:以bit0为基础构造结果0x1fbit23~bit25:以bit0为基础构造结果0x07开始移位相或:(0x1f<<3)|(0x07<<23)a |=(0x1f<<3)|(0x0...原创 2018-01-16 13:39:26 · 414 阅读 · 0 评论 -
C语言之指针(1)
1.广义上说,常说的“指针”包括指针变量和指针常量,它们统称为指针,在大多说情况下,指针指指针变量,存放内存地址。2.指针变量的类型作用某类型一级指针变量 = 该类型一级地址某类型二级指针变量 = &(该类型一级指针变量)n+1级指针变量 = &(n级指针变量)**************************************************...原创 2018-01-16 19:43:21 · 175 阅读 · 0 评论 -
C语言之指针(2)
例1.int a = 10;int *p = &a;Tips:p:表示 int *类型的以及变量指针,里面存放的内容是整型变量a的地址*p:表示p所指向的空间,指的是a的空间,只不过是通过地址找到的。&p:表示指针变量p自己的地址,他需要一个int**的而级指针变量来存放。例2.int a = 10;int *p = &a;...原创 2018-01-22 20:41:08 · 184 阅读 · 0 评论 -
C语言指针(3)~const关键字与指针
1.const用于修饰变量,将变量变为“常量”int const a = 2;//与const int a = 2;是等价的,此时a的值不能被改变,只能初始化。2.const修饰指针的三种形式int const *p与const int *p是等价的,指p所指的空间不能被改变,但是p的值是可以被改变的int a = 1;int b = 2;int const *p = &...原创 2018-01-27 20:59:37 · 205 阅读 · 0 评论