C++学习
LINMOUYU
平平无奇小菜鸟
展开
-
C++ 封装继承多态的小结
小结原创 2022-11-22 11:32:31 · 612 阅读 · 0 评论 -
C++核心编程 17多态
c++ 多态原创 2022-11-22 11:29:19 · 434 阅读 · 0 评论 -
运用c++容器实现员工的分部门显示
通过vector和multimap实现员工分部门显示原创 2022-11-06 14:28:39 · 370 阅读 · 0 评论 -
C++核心编程 16继承(下)
一、继承中同名成员的处理如果子类和父类拥有同名成员 优先调用子类的成员 可以通过作用域调用父类成员 同名的成员函数 子类会隐藏掉父类所以的版本 也可以加作用域进行调用#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>using namespace std;class Base{public: Base() { this->m_A = 100; } int m_..原创 2022-02-07 00:15:00 · 148 阅读 · 0 评论 -
C++核心编程 16继承(中)
一、继承方式公共继承 父类中private到子类中访问不到 父类中protected到子类中protected 父类中public到子类中public 保护继承 父类中private到子类中访问不到 父类中protected到子类中protected 父类中public到子类中protected 私有继承 父类中private到子类中访问不到 父类中protected到子类中private 父类中public到子类中private 二、继承中的对象模型.原创 2022-02-06 00:45:00 · 550 阅读 · 0 评论 -
C++核心编程 16继承(上)
目录一、定义二、特点三、语法一、定义继承(英语:inheritance)是面向对象软件技术当中的一个概念。如果一个类别B“继承自”另一个类别A,就把这个B称为“A的子类”也可以称作“A的派生类”,把A称为“B的父类别”也可以称“A是B的基类”。二、特点继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。一般静态的面向对象编程语言,继承属于原创 2022-02-05 20:20:04 · 371 阅读 · 0 评论 -
C++核心编程 14(四)赋值运算符重载
对于普通的数据类型函数,编译器知道该如何运算,但是对于自定义数据类型,编译器无法进行赋值,于是我们可以用到重载。首先,原创 2022-01-31 00:00:00 · 522 阅读 · 0 评论 -
C++核心编程 14(三)递增(减)运算符重载
目录递增运算符重载前置++的效率略高于后置++,原因是前置不会调用拷贝构造递减运算符重载++和--对于默认数据类型编译器都知道该如何递增递减,但是对于自定义数据类型,编译器不知道该如何运算,于是需要用到重载。递增运算符重载1.前置++class MyInter{public: MyInter() { this->m_Num = 0; } //重置前置++ MyInter& operator++() { //先++ m_N...原创 2022-01-30 14:44:33 · 232 阅读 · 0 评论 -
C++核心编程 15 友元
友元,使非成员函数可以访问类内私有属性。一、全局函数作为友元函数二、类作为友元类三、成员函数作为友元函数一、全局函数作为友元函数语法:friend+函数声明(函数类型+函数名称) //家建筑class Building{ //有一个全局函数 作为本类的友元函数,可以继续访问到私有内容 friend void goodGay(Building& building);public: Building() { this->m_BedRoom = "卧室"原创 2022-01-30 14:30:50 · 706 阅读 · 0 评论 -
C++核心编程 14(二)左移运算符重载
对于内置数据类型,编译器知道如果cout进行<<运算符输出,对于自定义数据类型,无法输出。于是便想到重载左移运算符。一、利用成员函数#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class C{public: C() {}; C(int a, int b):m_A(a),m_B(b) {} int m_A; int m_B; //利用成员函数 实现 <.原创 2022-01-30 12:51:39 · 308 阅读 · 0 评论 -
C++核心编程 14(一)加号运算符重载
编译器对于内置数据类型,知道该如何运算。当出现自定义数据类型时,编译器就不知道该怎么运算。运算符重载属于多态的一种。写法:typedefoperator+ (typedef& p)class C//创建自定义数据类型{public: C(){};//默认构造函数 C(int a, int b) :m_A(a), m_B(b){}; int m_A; int m_B;};两者重载方式:1.成员函数重载class C{public: C(){};//..原创 2022-01-23 21:03:23 · 438 阅读 · 0 评论 -
C++核心编程12 静态成员
静态成员分为静态成员变量和静态成员函数。一、静态成员变量1、数据共享2、在编译阶段就分配内存3、必须在类内声明、类外实现定义变量前要加 static。class Person{public: static int m_A; int m_C;private: static int m_B;//私有权限数据 类外访问不到};int Person::m_A = 10;//静态成员变量 类外初始化4、访问方式void test01(){ //1、通过对象原创 2022-01-18 10:51:31 · 503 阅读 · 0 评论 -
C++核心编程13 单例模式
单例模式定义:单例对象必须保证有且仅有一个实例存在,这个实例不允许被拷贝。 实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。原创 2022-01-18 10:43:58 · 589 阅读 · 0 评论 -
C++核心编程11 new运算符
一、malloc和new区别new、delete是一个运算符 malloc、free是一个库函数。 malloc返回的值是void* new返回值是new出来对象的指针(不用再做强制类型转换)。 malloc需要判断释放开辟成功 new内部都做好了相应的操作(内部会malloc数据在堆区,判断内存是否分配成功,调用构造函数)。 malloc不会调用构造函数 new调用构造函数。 malloc对应的释放是free new对应的释放是delete。二、注意事项不要用void*(万能指针)去接受原创 2022-01-12 14:17:59 · 395 阅读 · 0 评论 -
C++核心编程10 构造函数、析构函数、拷贝构造函数
一、什么是构造函数、析构函数、拷贝构造函数构造函数:当创建一个类型对象时,类通过一个或者几个特殊的成员函数来控制对象的初始化,这种函数就是构造函数。它的任务就是用来初始化类对象的成员的,所以当创建类对象或者类对象被创建就会调用构造函数。析构函数:...原创 2022-01-11 20:49:02 · 202 阅读 · 0 评论 -
C++核心编程 09函数重载
满足函数重载条件:作用域必须相同 函数名必须相同 参数个数不同or参数位置不同or参数类型不同注意:成员函数(类内函数) 不能作为重载条件void func(){ cout << "func()调用" << endl;}void func(int a){ cout << "func(int a)调用" << endl;}...原创 2022-01-10 11:53:17 · 230 阅读 · 0 评论 -
VS下使用strcpy()报错
这是因为Microsoft认为strcpy()函数不安全。解决办法:在代码最前面添加#define _CRT_SECURE_NO_WARNINGS 就可以用了。原创 2022-01-10 11:34:39 · 8705 阅读 · 5 评论 -
C++核心编程 08创建一个类(进阶和封装)
首先我们先是知道了,创建类的基本语法。类内部有三种权限:分别是public 公共、protected保护、private私有。public公共权限:类内可以访问,类外也可以访问。 protected保护权限:类内可以访问,类外不可以访问。(在继承中,子类可以继承) private私有权限:类内可以访问,类外不可以访问。(在继承中,无法被子类继承;换句话说:私有权限仅仅只是属于某一个类。)需要注意:C++类的默认权限是private,也就是说,如果在创建类时,没有写public,而直接定义了成员变原创 2021-12-02 23:47:09 · 444 阅读 · 0 评论 -
C++核心编程 07创建一个类(基础)
首先,创建C++类的语法是——class + 类名称{ }; 一定有分号!!例:创建一个立方体类,成员属性是立方体的边长。class Circle{public://类内可访问,类外也可访问 //类中的函数叫 成员函数 double cal() { return 2 * PI * m_R; } //用函数来设置半径 void setR(int r) { m_R = r; } //获取圆当前半径 int getR() { return m_R; ...原创 2021-12-02 23:33:07 · 445 阅读 · 0 评论 -
C++背景实现 学生管理系统(添加、显示、删除、修改)
#include<iostream>using namespace std;#include<string>#define MAX 1000//学生信息的结构体struct Student{ //学号 string S_sno; //姓名 string S_name; //性别 int S_sex; //年龄 int S_age; //家庭住址 string S_address; //联系方式 string S_phone;};//学生管理.原创 2021-11-21 20:00:38 · 2283 阅读 · 2 评论 -
C++核心编程 06引用(基本语法+指针的引用)
基本语法#include <iostream>using namespace std;//引用就是给内存空间 取别名//语法:Type &别名=原名void test01(){ int a = 10; int& b = a; b = 20; cout << "a=" << a << endl;}//引用必须要初始化!!!!!!!!!!!void test02(){ int a = 10; //in.原创 2021-11-20 18:16:47 · 536 阅读 · 0 评论 -
C++核心编程 05参数传递方式
#include <iostream>using namespace std;//1、值传递void mySwap01(int a, int b){ int temp = a; a = b; b = temp;}void test01(){ int a = 10; int b = 20; mySwap01(a, b); //值不变,因为在mySwap01函数中 改变的只是局部变量a b的值 并没有真正改变test01中a b的值 cout << .原创 2021-11-20 18:11:53 · 383 阅读 · 0 评论 -
C++核心编程 04const分配内存情况
#include <iostream>using namespace std;#include<string>//1、对const修饰的变量取地址的时候,会分配临时内存void test01(){ const int m_A = 10; int* p = (int*)m_A;}//2、const前加入 extern关键字后,也会分配内存=> test.cpp看//3、使用变量来初始化const修饰的变量void test02(){ int a .原创 2021-11-20 18:07:06 · 118 阅读 · 0 评论 -
C++核心编程 03using声明和using编译指令
#include<iostream>using namespace std;namespace kingGlory{ int sunwukongId = 1;}void test01(){ int sunwukongId = 2; //1、using声明 //当就近原则和using原则同时出现的时候,需要避免二义性,无法解决 //using kingGlory::sunwukongId; //cout << "sunwukongId=" <<.原创 2021-11-20 18:04:09 · 114 阅读 · 0 评论 -
C++核心编程 02双冒号作用域运算符
#include<iostream>using namespace std;int atk = 1000;void test01(){ int atk = 2000; cout << "局部攻击力为:" << atk << endl;//就近原则,atk会等于2000 //::作用域运算符 当::前面没有任何作用域情况下,代表使用全局作用域 cout << "全局攻击力为:" << ::atk << .原创 2021-11-20 18:01:33 · 199 阅读 · 0 评论 -
C++核心编程01C++书写helloworld 笔记
#include<iostream>//标准的输入输出流 i--input 输入 o-- output 类似于stdiousing namespace std;//使用 标准 命名空间 打开一个房间//程序入口函数int main(){ //cout 输出流对象 像屏幕中输出内容 // 10 << 1 => 10*2^1 // << 在c++中有新的意义,可以在cout后连接想输出的内容 //endl 结束输出并且换行 //不需要记.原创 2021-11-20 17:41:54 · 72 阅读 · 0 评论