C++学习笔记
橙子@C
这个作者很懒,什么都没留下…
展开
-
C++:职工管理系统
职工管理系统.cpp#include<iostream>#include "workManager.h"#include "worker.h"#include "employee.h"#include "manager.h"#include "boss.h"using namespace std;int main(){ ////测试代码 //worker * wk = NULL; //wk = new Employee(1, "张三", 1); //wk-&...原创 2022-03-06 16:19:56 · 2239 阅读 · 1 评论 -
C++:多态
#include<iostream>using namespace std;class Animal {public: virtual void speak() { cout << "动物在说话" << endl; }};class Cat :public Animal{public: void speak() { cout << "猫在说话" << endl; }};//执行说话的函数//地...原创 2022-02-20 21:21:01 · 155 阅读 · 0 评论 -
C++:继承
普通实现#include<iostream>using namespace std;class Java {public: void header() { cout << "公共的头部" << endl; } void footer() { cout << "公共的脚部" << endl; } void content() { cout << "Java的内容" << ...原创 2022-02-20 16:17:46 · 373 阅读 · 0 评论 -
C++:对象特性
1、浅拷贝和深拷贝:浅拷贝简单的赋值,深拷贝在堆中开辟内存,深拷贝解决析构函数重复释放堆区内存;c++默认是浅拷贝,如果成员属性有内存申请,要自己写拷贝构造函数Person(const Person & p)2、this指针是指针常量,所以它的指向不能改变,常量成员函数int add()const 不能改变成员变量的值,但是成员变量加了 mutable修饰之后就可以改变;3、常函数只能调用常变量4、静态函数只能调用静态成员变量,静态成员变量要在类类声明,类外初始化void Perso原创 2022-02-20 16:06:41 · 164 阅读 · 0 评论 -
类和对象:构造函数的调用和分类
#include<iostream>using namespace std;//构造函数的分类和调用//分类// 按照参数分类: 有参构造(默认构造)和无参构造// 按照类型分类: 普通构造和拷贝构造class Person {public: //构造函数 Person() { cout << "Person 有参构造函数的调用" << endl; } Person(int a) { age = a; cout &l.原创 2021-06-27 22:31:17 · 108 阅读 · 0 评论 -
类和对象:对象特性--构造函数和析构函数
#include<iostream>using namespace std;//构造函数的初始化和清理//1.构造函数 进行初始化操作,相当于出厂设置class Person{public: //1.1构造函数 //没有返回值,不用写void //函数名与类名相同 //构造函数有参数,可以发生函数重载 //创建对象的时候,系统会自动调用 ,且调用一次 Person() { cout << "Person 构造函数的调用" << endl; .原创 2021-06-27 21:51:06 · 92 阅读 · 0 评论 -
类和对象:封装--属性私有化--圆案例
#include<iostream>using namespace std;#include<string>//创建点类class Point {public: void setX(int x) { m_X = x; } int getX() { return m_X; } void setY(int y) { m_Y = y; } int getY() { return m_Y; }private: int m_.原创 2021-05-23 19:11:40 · 124 阅读 · 0 评论 -
类和对象:封装--成员函数私有化--立方体案例
#include<iostream>using namespace std;#include<string>class Cube{public: void setH(int H)//设置高 { m_H = H; } int getH()//获取高 { return m_H; } void setW(int W)//设置宽 { m_W = W; } int getW()//获取宽 { return m_W; } void set.原创 2021-05-23 17:24:06 · 107 阅读 · 0 评论 -
类和对象:封装--成员属性私有化
#include<iostream>using namespace std;#include<string>//成员属性设置为私有//1.可以自己控制读写权限//2.对于写可以检测数据的有效性class Person {public : void setName(string name) { m_Name = name; } string getName() { return m_Name; } int getAge() { int m.原创 2021-05-23 16:53:17 · 108 阅读 · 0 评论 -
类和对象:封装--访问权限
#include<iostream>using namespace std;#include<string>//访问权限:有三种//公共权限:public 成员 类内可以访问,类外可以访问//保护权限:protected 成员 类内可以访问,类外不可以访问 儿子可以访问父亲保护的内容//私有权限:private 成员 类内可以访问,类外不可以访问 儿子不可以访问父亲私有的内容class Person {public : //公共权限.原创 2021-05-23 15:35:16 · 141 阅读 · 0 评论 -
类和对象:学生类案例
#include<iostream>using namespace std;class Student { //访问权限public: //属性 string m_Name; int m_ID; //通过行为给属性赋值 void setName(string name) { m_Name = name; } void setID(int ID) { m_ID = ID; } void showIFO() { cout << "学生姓.原创 2021-05-23 12:10:04 · 158 阅读 · 0 评论 -
类和对象:封装
#include<iostream>using namespace std;const double PI = 3.14;class Circle { //访问权限public: //属性 int m_r;//半径 //行为:获取圆的周长 double caculateZC() { return 2 * PI * m_r; }};int main(){ //通过具体的圆,创建对象(圆) Circle .原创 2021-05-23 11:54:49 · 67 阅读 · 0 评论 -
函数提高之函数重载
#include<iostream>using namespace std;//作用:函数名可以相同,提高复用性//函数重载的条件//1.同一个作用域下//2.函数名相同//3.参数的类型或者个数或者顺序不同//注意:函数的返回值不可以作为函数重载的条件// 函数重载尽量不要用默认参数,避免二义性void func(){ cout << "this is func" << endl;}void func(int a){ cout.原创 2021-05-23 11:15:34 · 56 阅读 · 0 评论 -
函数提高之占位参数
#include<iostream>using namespace std;//语法:返回值类型 函数名(数据类型){}//占位参数也可以有默认值 void func(int a,int ){ cout << "this is func" << endl;}void func1(int a, int =20){ cout << "this is func" << endl;}int main(){ func(10,.原创 2021-05-23 10:50:45 · 57 阅读 · 0 评论 -
函数提高之默认参数
#include<iostream>using namespace std;/***************************************语法:返回值数据类型 函数名(参数=默认值){}***************************************/int func(int a, int b, int c){ return a + b + c;}int func1(int a, int b=30, int c=30){ return a.原创 2021-05-23 10:38:59 · 58 阅读 · 0 评论 -
引用做函数参数及本质
/****引用本质是一个指针常量********/#include<iostream>using namespace std;//值传递void swap_1(int a, int b){ int tmp = a; a = b; b = tmp;}//址传递void swap_2(int* c, int* d){ int tmp = *c; *c = *d; *d = tmp;}//引用传递 void swap_3(int &a, int &am.原创 2021-05-22 22:54:26 · 144 阅读 · 0 评论 -
C++中的引用
#include<iostream>using namespace std;/************************引用:给变量取一个别名;用法: 数据类型 &别名=变量名************************/int main(){ int a = 10; cout << "a=" << a << endl;//a=10 int& b = a; b = 20; cout << "a=.原创 2021-05-22 22:19:56 · 88 阅读 · 0 评论 -
程序的内存模型==new关键字
程序运行前:代码区:存放函数体的二进制代码全局区:全局变量,静态变量,字符串常量,const修饰的全局变量程序运行后:栈区:局部变量,形参堆区:程序员手动开辟,手动释放#include<iostream>using namespace std;int* func(){ int* p = new int(10);//在堆上创建内存,创建了一个整型变量,该变量的值为10 return p;}int* func2(){ //在堆上创建数组 int* st原创 2021-05-22 21:51:32 · 70 阅读 · 1 评论 -
C++第一阶段总结与感悟
1.对于C/C++来说,非零即为真,请大家好好体会;2.两个整型相除等于一个整数,余数被舍去;3.对于取余运算符“%”,用法非常多,例如:5%10=5;10%5=0;10%4=2;也可以判断是否是一个数的倍数关系:14%7=0;如果要求一个三位数每一位的数值,可以这样做:比如:357;个位 a = 357%10 = 7; 十位 b = (357/10)%10 = 5; b =357/10/10 (可以看水仙花的例子);4.对于switch语句,判断的类型只能是整型或者字符型;5.对于..原创 2021-05-22 18:11:33 · 113 阅读 · 0 评论 -
通讯录管理系统
/******************************************************************************* 此小项目涵盖了C++的基本内容,是对基础知识的一次检验,也是C++第一阶段的结束标志 我们将开启第二阶段的学习,不要放弃,一起努力! author:HCC time:2021/5/22 致敬:袁隆平爷爷,袁老于2021/5/22 13:07分在湘雅医院逝世,无比哀痛,愿袁老走好!****************************.原创 2021-05-22 17:26:29 · 94 阅读 · 0 评论 -
结构体案例1
/******************************************三个老师,每个老师带五个学生**************打印他们的姓名成绩等信息**********************************************/#include<iostream>using namespace std;#include<string>#include<ctime>struct Student { string sName.原创 2021-05-19 21:35:35 · 75 阅读 · 0 评论 -
结构体数组元素冒泡排序
/*******************************************//******将结构体数组元素按年龄排序***********//*******************************************/#include<iostream>using namespace std;#include<string>struct hero { string name; int age; string sex;};void ba.原创 2021-05-18 23:11:15 · 836 阅读 · 0 评论 -
结构体中 const 使用场景
#include<iostream>using namespace std;struct Student { string name; int age; int score;};void printStudent(const struct Student *p)//传递过来的是地址,防止数据被修改,用const修饰{ //struct Student *stu是个结构体指针,占4个字节,节省内.原创 2021-05-17 22:49:48 · 615 阅读 · 0 评论 -
结构体的定义和嵌套
#include<iostream>using namespace std;struct Student { string name; int age; int score;};struct Teacher { string name; int ID; struct Student stu;};int main(){ struct Teacher tea; tea.name = "大王"; tea.ID = 123456; tea.stu.name = "小.原创 2021-05-17 22:27:34 · 790 阅读 · 0 评论 -
一维数组:元素逆置
#include<iostream>using namespace std;int main(){ int arra[5] = { 5,4,6,7,8 }; int start = 0; int end = sizeof(arra) / sizeof(arra[0]) - 1; cout << "元素倒置前:"; for (int i = 0; i < sizeof(arra) / sizeof(arra[0]); i++) { cout <<.原创 2021-05-16 15:41:44 · 665 阅读 · 0 评论 -
goto 语句
#include<iostream>using namespace std;int main(){ cout << "1.xxxxxxxx" << endl; cout << "2.xxxxxxxx" << endl; goto FLAG;//goto 后面接一个标记 cout << "3.xxxxxxxx" << endl; cout << "4.xxxxxxxx" << en.原创 2021-05-16 12:15:33 · 50 阅读 · 0 评论 -
九九乘法表
#include<iostream>using namespace std;int main(){ for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { cout << j << "x" << i <<"="<< j * i<<"\t"; } cout << endl; } system("p.原创 2021-05-16 11:57:10 · 49 阅读 · 0 评论 -
求水仙花数
#include<iostream>using namespace std;/*水仙花数是一个三位数,每一位数的三次方之和等于它本身*/int main(){ int num = 100; do { int a = 0; int b = 0; int c = 0; a = num % 10;//获取个位数 b = num / 10 % 10;//获取十位数 c = num / 100;//获取百位数 if (a * a * a + b * b * b .原创 2021-05-16 11:27:30 · 55 阅读 · 0 评论 -
while循环语句
#include<iostream>using namespace std;#include<ctime>//time系统时间头文件int main(){ srand((unsigned int)time(NULL)); int val; int cnt = 0; val = rand() % 100 + 1;////系统随机生成一个随机数1~100; while (cnt<5) { int num; cout << "请输入一个.原创 2021-05-16 11:07:27 · 123 阅读 · 0 评论 -
switch语句
#include<iostream>using namespace std;/*if和switch语句区别*//*switch语句缺点,判断时候只能是整型或者字符型,不能是个区间*//*switch语句优点,结构清晰,执行效率高*/int main(){ int score = 0; cout << "请给电影评分:"; cin >> score; switch (score) { case 10: cout << "你觉得这个电.原创 2021-05-16 10:39:32 · 89 阅读 · 0 评论 -
算数/关系/逻辑 运算符
#include<iostream>using namespace std;int main(){ int a = 5; int b = 4; cout << a + b << endl; cout << a - b << endl; cout << a * b << endl; cout << a / b << endl;//两个整数相除,结果依然为整数,小数被舍去 cout .原创 2021-05-12 21:08:10 · 107 阅读 · 0 评论 -
数据的输入
#include<iostream>using namespace std;#include<string>int main(){ int a = 0; cout << "请给整型变量a赋值:" << endl; cin >> a; cout << "整型变量a=" << a << endl; float b = 3.14f; cout << "请给浮点型变量b赋值:" <.原创 2021-05-11 22:04:24 · 120 阅读 · 0 评论 -
数据类型:bool
#include<iostream>using namespace std;int main(){ //1.创建bool数据类型 //本质上1代表真 0代表假 bool flag = true; //1 cout << flag << endl; flag = false; //0 cout << flag << endl; //2.查看布尔类型所占内存空间大小 cout << ".原创 2021-05-11 22:02:56 · 691 阅读 · 0 评论 -
数据类型:字符串
#include<iostream>using namespace std;#include<string>int main(){ //1.c语言风格字符串 char str[] = "hello world"; cout << str << endl; //2.c++风格字符串 //包含头文件 #include<string> string str2 = "hello world"; cout << str2.原创 2021-05-09 21:18:54 · 60 阅读 · 0 评论 -
数据类型:转义字符
#include<iostream>using namespace std;int main(){ //转义字符 //1.换行符 \n cout << "helloworld\n"; //2.反斜杠 \\; cout<<"\\"<<endl; //3.水平制表符 \t 作用:整齐输出数据 cout << "aa\thello" << endl; cout << "aaa\thello" &l.原创 2021-05-09 21:08:42 · 104 阅读 · 0 评论 -
数据类型:字符型
#include<iostream>using namespace std;int main(){ //1.字符型变量创建的方式 char ch = 'a'; cout << ch << endl; //2.字符型变量所占内存的大小 cout << "char所占内存的大小:" << sizeof(char) << endl; //3.字符型变量常见错误 //char ch1 = "a";//创建字符型变量时候.原创 2021-05-09 20:55:48 · 474 阅读 · 0 评论 -
数据类型:实型
#include<iostream>using namespace std;int main(){ //1.单精度 float(4个字节) //2.双精度 double(8个字节) //3.默认情况下输出一个小数,显示6位有效数字 float f1 = 3.1415926f;//后面加f表示单精度,不加默认为双精度 double f2 = 3.1415926; cout << "f1=" << f1 << endl; cout <&.原创 2021-05-09 18:04:43 · 809 阅读 · 0 评论 -
数据类型:sizeof关键字
#include<iostream>using namespace std;int main(){ //可以利用sizeof求出数据内型占用内存空间的大小 //语法:sizeof(数据类型/变量) short num1 = 10; cout << "short占用内存空间为:" << sizeof(short) << "字节" << endl; cout << "short占用内存空间为:" << size.原创 2021-05-09 18:03:23 · 73 阅读 · 0 评论 -
数据类型:整型
#include<iostream>using namespace std;int main(){ //整型 //1.短整型(-32768~32767 两个字节) short num1 = 10; //2.整型 (4个字节) int num2 = 20; //3.长整型(windows,linux4个字节) long num3 = 30; //4.长长整型(8个字节) long long num4 = 40; system("pause"); return .原创 2021-05-09 18:02:21 · 107 阅读 · 0 评论 -
04 标识符
#include<iostream>using namespace std;//标识符命名规则//1.标识符不可以是关键字//2.标识符只能是数字,字母,下划线的组合//3.标识符第一个字符只能是字母或者下划线//4.标识符是区分大小写的int main(){ //1.标识符不可以是关键字 //int int a;不行 //2.标识符只能是数字,字母,下划线的组合 int abc = 10; int _abc123 = 10; int _123abc = 30;.原创 2021-05-09 17:13:06 · 70 阅读 · 0 评论