
c++
文章平均质量分 60
HeisenbergI
喜欢记录,觉得记录自己的学习过程也能够让自己更好地复习以及更好地成长,欢迎大家和我一起学习
展开
-
c++刷LeetCode
这题让我知道了字符串之间是靠第一个不同字母的asii码值大小来进行排序的。让我灵活用到了子串的获取函数,获取vector容器中的第一个和最后一个元素的函数。vector容器里面也能够存放字符串,这个得清楚。#include<iostream>#include<vector>#include<string>#include<algorithm>using namespace std;/* 写一个函数来查找字符串数组中的最长公共前缀。如果不存原创 2021-05-01 17:53:55 · 580 阅读 · 0 评论 -
c++模板--让偷懒成为常态
文章目录模板一.函数模板1.模板概念2.函数模板3.函数模板注意事项4.函数模板案例——选择排序各种类型的数组5.普通函数与函数模板地区别6.普通函数与函数模板的调用规则7.模板的局限性二.类模板1.类模板的概念2.类模板和函数模板的区别3.类模板对象做函数参数4.类模板与继承模板一.函数模板1.模板概念简单的理解就是像ppt里面的模板一样,提高复用性,减少重复的劳动模板只是一个框架,不能直接使用,需要自己添点东西进去所以说学习模板主要是为了能够学会调用STL里面的模板2.函数模板这个模板的原创 2021-06-09 22:05:08 · 155 阅读 · 0 评论 -
通过最基础的例子讲解c++多态--没有更简单的了
文章目录多态1.多态的基本概念2.多态的原理分析3.多态案例,计算器设计4.纯虚函数和抽象类5.多态案例设计2,制作各种饮品6.虚析构和纯虚析构7.多态案例设计三:电脑的组装多态1.多态的基本概念函数重载和运算符重载属于静态多态,可以这样理解,一种形式有多种意义。动态多态是派生类和虚函数实现运行时多态#include<string.h>#include<iostream>using namespace std;class animal{public: virt原创 2021-06-09 16:03:43 · 171 阅读 · 0 评论 -
c++继承--这就是c++里面最有魅力的东西
继承的应用——为什么要用继承类与类之间存在着关系,比如说鱼这个类,下级里有草鱼,青鱼等等,然后每种鱼都有它自己的一些特性,定义这些类时,发现下级别的成员除了拥有上一级的共性,还有自己的特性。这时可以用继承的技术来减少重复的代码。#include<iostream>using namespace std;//继承的语法:// class 子类 :public 父类class dog{public: int m_age = 0; int m_height = 15; voi原创 2021-04-14 10:25:43 · 264 阅读 · 0 评论 -
c++运算符重载
1.加号运算符重载作用:实现两个自定义数据类型相加的运算单纯的让编译器去加,它不知道该如何去加,就比如说类里面有很多属性,我创建的对象是只需要让两个对象中的某些属性进行相加,这就需要用到运算符重载了。#include<iostream>using namespace std;class person{public: person(int a,int b) { this->m_a = a; this->m_b = b; } int m_a; int m原创 2021-04-13 20:55:26 · 157 阅读 · 0 评论 -
c++友元
友元的理解类内的私人区域只允许自己提供接口去进行访问,为了让特殊的函数以及类外访问私人区域就提供了友元 friend友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的实现1.全局函数做友元只需要在类中加上friend进行声明#include<iostream>using namespace std;class building{ friend void visit(building& building1); //告诉编译器 visit全局函数 是 Bui原创 2021-04-13 12:59:53 · 111 阅读 · 0 评论 -
c++ const修饰成员函数
const修饰成员函数常函数:成员函数后加const后我们称为这个函数为常函数常函数内不可以修改成员属性成员属性声明时加关键字mutable后,在常函数中依然可以修改常对象:声明对象前加const称该对象为常对象常对象只能调用常函数*#include<iostream>using namespace std;class Person {public: Person() { m_A = 0; m_B = 0; } //this指针的本质是一个指针常量原创 2021-04-10 14:49:50 · 184 阅读 · 0 评论 -
c++ this指针的学习
this指针的用途:当形参和成员变量同名时,可用this指针来区分在类的非静态成员函数中返回对象本身,可使用return *this#include<iostream>#include<string.h>using namespace std;class Person{public: Person(int age) { //1、当形参和成员变量同名时,可用this指针来区分 this->age = age; } Person&原创 2021-04-10 14:36:29 · 96 阅读 · 0 评论 -
c++初始化列表
初始化列表这个函数能和构造函数一样起到初始化数据的作用#include<iostream>using namespace std;class person{public: /*person(int a, int b, int c) //传统普通初始化 { m_A = a; m_B = b; m_C = c; }*/ person(int a,int b,int c):m_A (a),m_B(b),m_C(c){} //初始化列表函数 void原创 2021-04-10 14:01:50 · 133 阅读 · 0 评论 -
c++中的构造函数和析构函数
构造函数和析构函数的产生对象的初始化和清理,就像电子产品的出厂设置一样。需要知道的是构造函数和析构函数会自己自动运行而不需要调用。作用构造函数主要作用在于为对象的成员赋值属性赋值。析构函数作用在于对象销毁前执行一些清理工作。函数语法构造函数类名(){}1.没有返回值,也不写void2.函数名称与类名相同3.可以有参数,可以发生重载4.自动调用,且只会调用一次析构函数~类名 (){}1.没有返回值,也不写void2.函数名称与类名相同,函数名前加~3.不可以有参数4.自动调原创 2021-04-09 17:25:45 · 288 阅读 · 0 评论 -
c++封装
首先我们要知道c++面向对象有三大特性,封装,继承,多态,这篇文章主要学习封装。其次知道 万事万物都可作为对象,有其属性和行为,举例,车是一个对象,车的属性是轮胎,方向盘…,即这个车子有什么。行为是载人,即这个车有什么用,能做什么。具有相同性质的对象,我们可以抽象称为类。这是最最基础的知识,一定要知道,并清楚。开始学习封装。封装的意义1.设计类的时候,属性和行为写在一起,表现事物2.将属性和行为加以权限控制 //这个现在理解不了,之后再补充#include <iostream&g原创 2021-04-07 14:13:08 · 256 阅读 · 0 评论 -
c++函数的占位参数以及函数重载
1.函数的占位参数c++函数的形参列表里可以有占位参数,用来占位,调用函数时必须填补该位置#include <iostream>using namespace std;void func(int a, int); //函数形参中只定义一个类型,即占位操作int main(){ func(10, 10); //调用函数时必须填补该位置 return 0;}void func(int a, int){ cout << "this is " <<原创 2021-04-07 08:58:30 · 836 阅读 · 0 评论 -
c++基础知识new和 引用的学习
**1.new的学习**//new的学习#include<iostream>using namespace std;int main(){ int* p = new int(20); //利用new创建一个整型 ,返回的是地址 int* array = new int[10]; //利用new创建一个数组,返回的是首个元素的地址 cout << *p << endl; delete p; //释放 for (int i = 0; i &原创 2021-04-06 22:48:52 · 444 阅读 · 0 评论 -
内存四区--搞清楚你写的代码是写在哪个地方的
内存分为四个区域:代码区,全局区,堆区,栈区1.全局区全局区存放的是 全局变量静态变量 ,即static关键字常量,常量又可分为字符串常量,const修饰的全局变量(全局常量)2.栈区由编译器自动分配释放,开辟的数据由编译器自动释放堆区存放的是 局部变量,形参注意,不要返回局部变量的地址,因为栈区的数据在函数执行完后就会自动释放#include<iostream>using namespace std;int* func();int* func(){ int a =原创 2021-04-05 16:55:21 · 972 阅读 · 0 评论