![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++入门
文章平均质量分 57
闲看庭花
这个作者很懒,什么都没留下…
展开
-
C++入门day14(模板)
文章目录模板函数模板函数模板语法函数模板的注意事项函数模板案例普通函数与函数模板区别普通函数与函数模板的调用规则模板的局限性类模板类模板语法类模板与函数模板的区别类模板中成员函数的创建时机类模板对象做函数参数类模板与继承类模板成员函数类外实现类模板分文件编写类模板与友元类模板案例[从现在起,就是 C++ 提高编程的内容了-- 泛型编程 和 STL技术]模板模板的概念模板就是建立 通用的模具,可以大大提高复用性例如生活中的模板:一寸照片模板,PPT模板优点:通用性很强缺点:不能直接用函数模板原创 2021-03-11 21:08:57 · 334 阅读 · 0 评论 -
C++入门day14(类模板案例)
MyArray.h// 自己的通用的数组类#pragma once#include <iostream>using namespace std;template <typename T>class MyArray{ public: // 数组的有参构造 MyArray(int capacity) { // cout<<"-- MyArray 有参构造调用 --"<<endl; this->m_Capacity=原创 2021-03-11 20:48:20 · 205 阅读 · 0 评论 -
C++入门day13(职工管理系统)(上)
职工管理系统管理系统需求职工管理系统可以用来管理公司内所有员工的信息这里利用 C++ 来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责普通员工职责:完成经理交给的任务经理职责:完成老板交给的任务,并下发任务给员工老板职责:管理公司所有事务管理系统中需要实现的功能如下:退出管理程序:退出当前管理系统增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号显示职工信息:显原创 2021-03-10 18:27:56 · 250 阅读 · 1 评论 -
C++入门day13(职工管理系统)(下)
文章目录职工管理系统项目worker.hemployee.hemployee.cppmanager.hmanager.cppboss.hboss.cpptest123.htest123.cppworkerManager.hworkerManager.cpp职工管理系统.cpp职工管理系统项目worker.h#pragma once#include <iostream>#include <string>using namespace std;// 职工抽象基类cla原创 2021-03-10 18:26:41 · 314 阅读 · 0 评论 -
C++入门day13(文件操作)
文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放文件操作可以 使数据持久化头文件<fstream>文件类型分为两种:文本文件:文件以文本的ASCII码形式存储在计算机中二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream 写操作ifstream 读操作fstream 读写操作#include <iostream>#include <fstream>#in原创 2021-03-09 11:27:10 · 81 阅读 · 0 评论 -
C++入门day12(多态)
文章目录多态多态的基本概念多态案例 -- 计算器类纯虚函数和抽象类多态案例二 -- 制作饮品虚析构和纯虚析构多态案例三 -- 电脑组装多态多态的基本概念多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态的区别:静态多态的函数地址早绑定 – 编译阶段确定函数地址动态多态的函数地址晚绑定 – 运行阶段确定函数地址加 virtual, 晚绑定重载:函数名相同,参数不同重写:什么都同,继承的时候子类覆盖父类动原创 2021-03-08 00:47:35 · 163 阅读 · 0 评论 -
C++入门day12(继承)
文章目录继承继承的基本语法继承方式继承中的对象模型继承中构造和析构顺序继承同名成员的处理方式继承同名静态成员处理方式多继承语法菱形继承继承继承的基本语法继承的好处:减少重复代码语法: class 子类 : 继承方式 父类class A : public B;子类,也被称为“派生类”父类,也被称为“基类”派生类中的成员,包含两大部分:一类是从基类继承过来的,一类是自己增加的成员。从基类继承过来的表现了其共性,而新增的成员体现了其个性#include <iostream>原创 2021-03-08 00:25:55 · 83 阅读 · 0 评论 -
C++入门day11(运算符重载)
文章目录运算符重载加号运算符重载左移运算符重载递增运算符重载赋值运算符重载关系运算符重载函数调用运算符重载[下午6点左右,准备写今天的记录,但是有一个网友评论,于是我点击进去他的CSDN页面查看,网页跳出一个通知,询问我是否允许通知?好奇心驱使,我点击了允许,然后系统就瘫痪了。Win7, 360极速浏览器,不管鼠标点哪儿,键盘敲什么,都没反应,准确来说,只要我操作一下显示界面就闪一下,重启也没用。后来拔掉鼠标和键盘的USB,再重启,就正常了。计算机的东西真的好复杂啊,有时候硬件有毛病,有时候系统有毛病,有原创 2021-03-05 23:20:52 · 120 阅读 · 0 评论 -
C++入门day10(友元)
友元比如:客厅(Public)什么人都能进,但是卧室(Private)只有你可以,偶尔允许好朋友进去。友元的目的:让一个函数或者类访问另一个类中的私有成员关键字为:friend友元的三种实现:全局函数做友元类做友元成员函数做友元全局函数做友元#include <iostream>#include <string>using namespace std;// 全局函数做友元class Building{ friend void goodFriend(B原创 2021-03-04 18:10:22 · 82 阅读 · 1 评论 -
C++入门day10(this指针)
文章目录C++对象模型和this指针成员变量和成员函数分开存储this指针概念空指针访问成员函数const修饰成员函数C++对象模型和this指针成员变量和成员函数分开存储空对象占用内存空间为:1因为,C++编译器会给每个空对象也分配一个字节的空间,是为了区分空对象占内存的位置每个空对象也因为有一个独一无二的内存地址#include <iostream>using namespace std;// 成员变量和成员函数是分开存储的class Person{ };class原创 2021-03-04 11:36:59 · 216 阅读 · 1 评论 -
C++入门day09(构造和析构--深拷贝和浅拷贝)
文章目录对象的初始化和清理构造函数和析构函数构造/析构函数:构造函数的分类及调用拷贝构造函数调用时机构造函数的调用规则深拷贝与浅拷贝初始化列表类对象作为类成员静态成员对象的初始化和清理生活中我们买的电子产品会有出厂设置,如果某一天我们不使用了就会清空数据来保证信息安全C++的面向对象也有这样的初始化设置和清空数据的设置构造函数和析构函数对象的初始化和清理工作是编译器强制要求的,如果我们不提供,编译器会提供。编译器提供的构造函数和析构函数是空实现。构造函数:在创建对象时,为对象的成员属性赋值,原创 2021-03-03 18:05:12 · 270 阅读 · 1 评论 -
C++入门day08(点和圆的关系--解耦合)
点和圆的关系Dev-C++ 5.11 (64位)devCircle.h#pragma once#include <iostream>#include "devPoint.h"using namespace std;class Circle{ public: void setR(int r); int getR(); void setCenter(Point center); Point getCenter(); private: int m_R;原创 2021-03-02 18:23:01 · 152 阅读 · 0 评论 -
C++入门day08
[今日鸡汤:脚踏实地,是一切负面情绪的良药][今日真相:所谓问题,就是期待与现实的落差]函数的默认参数(默认值放在右边)(如果函数声明有默认参数,那么函数实现就不能写;反之亦然)int func(int a,int b = 20); // 声明int func(int a,int b) // 实现{ return a + b;}函数的占位参数占位参数还可以有默认值,运算符重载的时候有用void func(int){ cout<<"it is func"<原创 2021-03-02 17:48:57 · 150 阅读 · 1 评论 -
C++入门day07(引用)
[今日调侃:网友说,Python适合不想当程序员的人用来编程]引用引用的基本使用作用:给变量起别名语法:数据类型 &别名 = 原名;注意:引用必须初始化,而且不可改变引用做函数参数作用:函数传参时,可以利用引用的技术让形参修饰实参优点:可以简化指针修改实参引用传递(&)和地址传递(*)的效果是一样的引用做函数返回值作用:引用是可以作为函数的返回值存在的注意:不要返回局部变量的引用用法:函数调用作为左值#include <iostream>usi原创 2021-03-01 18:27:28 · 170 阅读 · 0 评论 -
C++入门day07(内存四区)
参考学习资料(别人总结的都比我的好)内存四区使用说明 C/C++内存四区关于内存地址和内存空间的理解。内存分区模型C++程序在执行时,将内存大方向划分为 4 个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值、局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收程序运行前在程序编译后,生成了 exe 可执行程序,在(双击之前)未执行该程序前分为两个区域代码区:存放原创 2021-03-01 17:29:35 · 126 阅读 · 0 评论 -
C++入门day07(通讯录)
[C++语句真的好长啊,Python确实更简洁。老师带着我们理解逻辑,所以用的是面条版]通讯录管理系统系统需求通讯录是一个可以记录亲人、好友信息的工具。系统中需要实现的功能如下:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联系人:显示通讯录中所有联系人信息删除联系人:按照姓名进行删除指定联系人查找联系人:按照姓名查看指定联系人信息修改联系人:按照姓名重新修改指定联系人清空联系人:清空通讯录中所有信息退出通讯录:退出当原创 2021-03-01 11:38:13 · 105 阅读 · 1 评论 -
C++入门day06(结构体)
文章目录结构体结构体数组结构体指针结构体嵌套结构体结构体做函数参数结构体中const使用场景结构体案例结构体结构体属于 用户自定义的数据类型,允许用户存储不同的数据类型struct 类型名称 {成员列表};总结:定义结构体时的关键字是 struct,不可省略创建结构体变量时,关键字struct可以省略结构体变量利用操作符 “.” 访问成员#include <iostream>#include <string.h>using namespace std;原创 2021-02-28 17:40:41 · 234 阅读 · 0 评论 -
C++入门day05(指针)
指针指针的作用:指针可以保存一个内存地址,可以通过指针间接控制内存使用指针时,可以通过 解引用 的方式来找到指针指向的内存指针前用星号 * 代表解引用,找到指针指向的内存中的数据(网友说:& 和 * 是起相反作用的 两个符号)在32位操作系统下,指针占用4个字节空间;64位 --> 8个字节(VS和Dev编译器都可以自己选择用64位还是32位对代码进行编译)空指针和野指针空指针:指针变量指向内存中编号为0的空间用途:初始化指针变量注意:空指针指向的内存是不可以访问的内存原创 2021-02-27 17:38:02 · 167 阅读 · 0 评论 -
C++入门day04-2
函数加法函数、数字交换函数#include <iostream>using namespace std;// 函数声明 int max(int a,int b);// 定义加法函数 int add(int num1,int num2){ int sum = num1 + num2; return sum;}// 定义数字交换函数void swap(int num1, int num2){ int temp = num1; num1 = num2; num2原创 2021-02-26 18:19:34 · 98 阅读 · 0 评论 -
C++入门day03-2
[感触:有空的时候要用一下C/C++,自己实现算法流程,跟做数学练习题那样,不练习的话会陌生。Python的封装太猛了,用起来有种云里雾里的感觉,轻飘飘的][一维数组找最大值,数组内元素逆置,冒泡排序]数组所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个数据元素都是相同的数据类型特点2:数组是由连续的内存位置组成的比如:去便利店买电池,买散装的4节电池比较难拿,但是买一排4节就容易拿了数据类型 数组名称 [数组长度] = {值1,值2,值3...};int ar原创 2021-02-25 20:14:21 · 158 阅读 · 1 评论 -
C++入门day03-1
[感触:学Python有一种轻飘飘的感觉,学C/C++时才知道自己的数学知识是多么匮乏,才想起编程其实最初是用来计算的][案例:水仙花数,敲桌子,乘法口诀表]do…whiledo{循环语句}while(循环条件)与while的区别:do…while…会先执行一次循环语句,再判断条件练习案例:水仙花数案例描述:水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身,例如:1^3+5^3+3^3=153请利用 do...while 语句,求出所有3位数中的水仙花数思路:1、所有原创 2021-02-25 09:27:34 · 139 阅读 · 0 评论 -
C++入门day02
字符型char ch = 'a';在C和C++中,字符型占用一个1个字节转义字符\t 一共占8个位置字符串型两种风格:C风格:char 变量名[] = "字符串值";C++风格:#include <string> // 似乎2019年以后的IDE不用加头文件也可以运行string 变量名 = "字符串值";bool 数据类型占用1个字节true 1 false 0数据的输入cin>>变量;加减乘除两个整数相除,结果依然是整数,将小数部原创 2021-02-24 17:45:29 · 130 阅读 · 0 评论 -
C++入门day01
C++ 基础模板#include <iostream>using namespace std;int main(){ cout<<"Hello World!"<<endl; system("pause"); return 0;}变量存在的意义:方便我们管理内存空间;给变量分配合适的内存空间变量创建的语法:数据类型 变量名 = 变量初始值int a = 0;常量的定义方式:#define 宏常量const 修饰的变原创 2021-02-22 17:45:28 · 87 阅读 · 0 评论