自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用排序算法

一、选择排序

2021-02-14 11:56:07 216

原创 C++11新增类型转换

一、静态类型转换:static_cast#include<Windows.h>#include<iostream>using namespace std;class A{public: virtual void Show() { cout << "基类:A\n"; } void role() { cout << "啥也不干!\n"; }};class B :public A{public: void Show() {

2020-08-25 08:57:20 201

原创 那些劝退小白的指针,其实并不难

说到指针,真是让人又爱又恨,爱它是因为指针真的可以为所欲为,恨它是因为对于新手来说,一不小心就晕了。像什么常量指针、指针常量、指针数组、函数指针、二级指针、智能指针。。。。。。其实这么多奇奇怪怪的指针,不管它的语法有多么花里胡哨,本质上都是一个地址。举个栗子一、普通指针 int age = 18; int* p = &age; cout << "age的地址:" << &age << endl; cout << "age的地址:"

2020-08-14 18:55:59 180

原创 遍历vector容器的4种方法

#include<windows.h>#include<iostream>#include<vector>#include<iterator>#include<algorithm>using namespace std;int main(void){ vector<int> v1; for (int i = 0; i < 4; i++) v1.push_back(i); //遍历容器的4种方法 //1.普

2020-08-08 17:35:29 906

原创 类模板与友元函数会擦出什么样的火花

类模板、友元函数,这两个东西单独拿出来大家都不会陌生。那么放一起呢?会发什么奇怪的变化?先来声明一个类模板template<typename T>class A{public: A(T id = 0); T Getid()const; A<T>& operator+(const A<T>& a);private: T id;};然后定义一下成员函数模板template<typename T>A<T>::

2020-08-02 12:09:48 115

原创 装逼利器——虚函数表

多态我们在设计类的时候经常会遇到这样一种情况,即同一个方法在派生类和基类中实现不同的功能,这种行为称为多态。要实现这种效果,有两个方法:1、在派生类中重新定义基类的方法2、使用虚函数先看第一种方法#include<iostream>#include<windows.h>using namespace std;class Father{public: void play() { cout << "跑步\n"; }};class Son :pub

2020-07-28 16:38:48 150

原创 C++图书管理系统1.0

一、项目需求(一)、用户登录(可选择后台管理员或前台管理员)(二)、后台管理员身份1、书籍录入(存入书籍文件)2、借阅人信息录入(存入借阅人信息文件)(三)、前台管理员身份1、记录借书(存入借书信息文件)2、记录还书(存入还书信息文件)二、方案1、设计一个登录菜单2、设计两个界面(前台、后台)3、进入前台或后台之后显示一个子菜单4、设计三个类4.1、书籍类Book4.2、人类People4.3、初始化类Init三、框架四、源代码1、主程序#include<Win

2020-07-21 18:07:24 1321 1

原创 C++类的默认成员函数中的大坑!

前几天改bug的时候发现了其他几个bug,深挖之后发现是个大坑,在这里分享一下避免大家掉坑里。先说第一个bugclass Human{public: Human(const char* name = NULL, int age = 0); ~Human(); Human& operator=(const Human* human);//注意这里是指针!!! friend ostream& operator<<(ostream& os, const H

2020-07-19 19:59:18 180

原创 C++的多重继承与虚基类

多重继承(MI)多重继承是指使用多个基类的继承,可以分为私有MI,保护MI,公有MI。这里要特别强调一下公有MI,因为它将导致一些问题。

2020-07-12 15:27:59 170

原创 码农和大神的区别:一个简单的循环

假设有这样一个需求:1、1000块钱,买100只鸡。2、公鸡50元/只,母鸡30元/只,小鸡10元/3只。有多少种买法?来看一下码农行为:int count = 0;//买法int i = 0;//循环次数for (int x = 0; x < 100; x++){//x表示公鸡的数量 for (int y = 0; y < 100; y++){//y表示母鸡的数量 for (int z = 0; z < 100; z++){//z表示小鸡的数量 if (50 *

2020-07-10 17:34:23 278

原创 C++小游戏——俄罗斯方块

记录一下我的成长历程,这是我学了C++之后,写的第一个程序,现在看看觉得很low,但我不想改,有兴趣的小伙伴可以参考一下。#include<iostream>#include<windows.h>#include<conio.h>//使用getch()函数#include<ctime>#include <stdio.h>using namespace std;HANDLE handle;COORD crd;//坐标const

2020-07-05 18:03:43 1699

原创 智能指针——从根源上解决内存泄漏的问题

一、什么是内存泄漏用new在堆中分配内存后,没有调用delete,然后指针所在的内存因为作用域规则而被释放。这时候堆中分配的内存仍在,但是指向它的指针没了,导致程序的整个生命周期内都无法访问这部分内存,也就是说内存泄漏了。如果程序只运行一次两次,偶尔的内存泄漏,其实问题不大。但是如果程序是一直在运行的,那么连续的内存泄漏,迟早会导致程序崩溃,甚至会导致其他程序的崩溃,因为堆中内存已经耗尽了。例:void test(){ char* p = new char[1024*1000*100];//分配1

2020-06-21 14:57:15 811

原创 C++递增/减运算符前缀格式和后缀格式的区别

区别一++i是左值,i++是右值。区别二实现代码不同++i等同于i=i+1,然后返回的是变量i本身,所以是一个左值。i++是先将i放在一个临时变量中,再执行++i的操作,然后返回临时变量的值,所以是一个右值。所以i++执行速度会比++i慢一点,它多了一个分配内存并赋值的操作。区别三优先级不同例: int i[5] = { 1,3,5,7,9 }; int* p1 = i; int* p2 = i; int* p3 = i; //*和前缀++/--优先级相同,以从右到左的方式结合

2020-06-19 11:18:55 1018

空空如也

空空如也

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

TA关注的人

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