2021--C++最新接触
多次 学习C++,再一次领悟其精髓。
码字界陈冠希
一个立志拿代码泡妞的男人·····帅是我的缺点······
展开
-
020--C++多态
简介:(多态这里没有怎么表述好,之后会更新)对于多态,它的出现要符合两个条件:你定义的类要有继承,同时基类中有虚函数的存在。只有这两个条件存在,你才能去发现多态的存在。多态的出现,涉及到关键字virtual.自从继承开始,我们就知道在一个类的前面加上virtual,这就属于虚基类的问题。那么在多态这一问题上,是针对继承类中的函数名前加上virtual.于是最本质的区别就是多态涉及函数。也就是说,我们在继承类中的函数前加上关键字virtual,我们讨论的问题多态就展开了。多态是什么东西?多态的出现解.原创 2021-04-20 10:17:52 · 97 阅读 · 0 评论 -
021--C++多态的基本概念
简介:多态分为静态多态,和动态多态。多态这个概念通过类中的函数体现,那么对于函数要体现多态,就要在函数前加上关键字virtual,使得函数成为虚函数,这样我们才能在C++中了解多态机制。(简单来说多态的本质就是:对继承下来的函数进行新的改造。以此实现代码的复写。------你们全家要制造飞机,你爸爸制造了飞机的外形,你要在你爸爸的基础上制造飞机的引擎,你的儿子要在你的基础上学会如何驾驶飞机。)首先,对多态的静态和动态,我们先来进行理解:区分静态和动态的一个标准;在编译时知道运行结果的叫静态,在编译时不.原创 2021-04-20 11:27:54 · 145 阅读 · 0 评论 -
018--C++虚基类有关内存的存取查看原理解说(最优--仅供扩展)
简介:首先你要知道虚基类为什么能够减少你所创建类的内存?因为你使用了virtual 这个关键字,使得你所建立类有了新的内存存取方式。比如,你没有使用virtual,那么你所建立的类所包含的基类内存有重复,因此导致派生类内存变大。那么如果你使用了virtual,也就在内存中,仅有一份基类内存,因此你所建立的派生类也就相应内存变小了。C语言中的内存存储数据的存储方式:在这里给大家补充以下c语言中内存的存取方式。它是16进制存取的。比如现在有一个变量为:int i=4407873;那么对于i这个变量.原创 2021-04-18 21:33:00 · 435 阅读 · 0 评论 -
017--C++继承中虚基类(最优)
简介:多级多重继承:会导致在派生类中可能会有多个相同的基类,因此会影响派生类的大小。所以这个就是一个问题,为了解决这个问题,虚基类就出现了。也就是在相关类前加关键字virtual.有两种用法:一些特殊的情况,必须有多个相同的基类(一般这种情况比较少)通常情况下,不需要多个相同的基类(因此引出虚基类的概念)多级多重继承(派生类不用关键字virtual,派生类对象所占内存大小:)//多级多重继承引出虚基类的问题?什么是虚基类,虚基类能做什么。//多级...原创 2021-04-18 17:39:36 · 221 阅读 · 0 评论 -
016--继承--多级继承与多级多重继承
简介:继承分为单继承与多继承。多继承又分为多级继承与多重继承,同时又演化出了 多级多重继承。因此在多级多重继承上,衍生出了虚基类的问题。(假设现在有五个类,分别为A,B,C,D,E)多级继承:A是基类,B继承A,C继承B,D继承C,E继承D.这种继承方式就是多级继承。 多重继承:A是基类,B继承A,C继承A,D继承B,C,E继承D.这种继承方式既可以是多重继承,也可以是多级多重继承。在继承关系中,如果类中有同名成员(temp),如何去访问?通过对象自己访问的是这个对象自己的成员。如果.原创 2021-04-18 17:00:40 · 1182 阅读 · 0 评论 -
015--C++继承中基类与派生类转换(最优)
继承中,派生类的对象是基类对象,基类对象不是派生类对象 派生类可以直接赋值给基类,反向赋值是不允许的 不是同一类型的类不可以转换代码学习:#include<iostream>using namespace std;class A{ int a;public: A(){ a = 2; cout << a << endl; }};class B:public A{ int b;public: B(){ b = 10; c.原创 2021-04-18 16:05:13 · 254 阅读 · 0 评论 -
014--C++继承的基本概念以及继承的析构顺序关系(最优)
简介:继承,简单来说就是把别人做好的东西,拿过来,并自己开发打造成属于自己的东西,然后去使用。继承:继承:从一个类派生出一个新的类,这两个类的关系就称之为继承继承使结构更加科学继承是面向对象程序设计的一个特性继承分为:单继承和多继承在派生类里面来描述继承关系class 派生类名:继承方式 基类名1,继承方式 基类名2继承方式:公有,私有,保护基类的访问属性为私有,不管用什么方式继承,都可以继承,但都不可以被访问基类的访问属性和继承方式谁更严格,就用谁继..原创 2021-04-17 15:30:43 · 219 阅读 · 0 评论 -
013--C++运算符重载(+,-,*,前后++,>>,<<)(最优)
简介:(注意前后++的写法,以及输入输出重载的写法,关键在于什么时候用&引用以及什么时候const.由于目前不知道该怎样解释,就暂且落下,自己去多多琢磨。)运算符重载:在类或结构中,对运算符进行重新的定义,让这个运算符能适应这个类型的操作。代码学习:(写了更多注释,方便理解)//运算符重载#include<iostream>using namespace std;class MyPoint{ int x; int y;public: MyPoint(){.原创 2021-04-15 20:23:21 · 255 阅读 · 0 评论 -
012--C++类的友元函数及友元类(最优)
简介:友元函数分为友元类以及友元函数,它的重点在于能够调用一个被private(私有化)的类中的所以数据以及函数。你要知道一个类它是具有封装性的,因为它的数据被private,public.所以,friend 打破了这种封装性,也就可以调用其所在类所有数据。友元在局部打破程序封装性的一种手段关键字:friend友元函数:友元类友元函数:这个函数不属于类 这个函数可以在类外定义,也可以在类内定义,不管定义 在哪,都是一个普通的函数 有权访问和调用类的私有以及保护成员友元类:.原创 2021-04-15 13:01:22 · 134 阅读 · 0 评论 -
011--C++类的静态成员static(最优)
简介:关于类的特俗成员变量,就两个static类静态成员变量及函数以及const类常成员变量以及函数。他们的最本质的区别就是static相当于临时变量,可以修改,但是const不是,它是固定的不可更改的数据。所以,使用它们的时候一定要想到它们最本质的区别。静态成员:包含静态数据成员和静态函数成员。然后你要加关键字:static使用Static可以进行五种说明:局部静态变量(使用域仅在局部,生命周期在全局) 全局静态变量(使用域在单文件,生命周期在全局)相当于文件全局变量 静态函数(函数.原创 2021-04-14 20:29:29 · 103 阅读 · 0 评论 -
010--C++类的常成员变量const(最优)
简介:类的常成员分为类的常成员对象,类的常成员变量,类的常成员函数。类的常成员对象只能调用类的常成员函数,不能调用不是类的常成员函数。 类的常成员变量必须使用类的成员初始化列表来初始化。 const int getAge();只是普通的类成员函数,而int getAge()const才是类的常成员函数。所以,书写一定要注意区分。 代码学习:(简单想想,其实const 的使用,就是你所要定义的数据是否需要改变,如果不想让数据被改变,那么就cosnt。)//常量成员:类的常量数据..原创 2021-04-14 17:16:50 · 261 阅读 · 0 评论 -
009--C++拷贝构造关于深浅拷贝的问题讨论(最优)
引入动态内存分配,浅拷贝所出现的问题://当所创建的类中涉及到动态内存的分配数据时,相应的,深拷贝也就出现了。#include<iostream>using namespace std;class MyStu{ int id; int age; char *name;public: MyStu(int id,int age){ this->id = id; this->age = age; this->name = new char[125.原创 2021-04-14 11:56:11 · 87 阅读 · 0 评论 -
008--C++拷贝构造初步了解(最优)
简介:拷贝构造涉及两种调用方式(显示以及隐式调用拷贝构造),同时,拷贝构造涉及两种构造方式(深浅拷贝)。拷贝构造:拷贝构造是一种特殊的构造函数拷贝构造:用自身这种类型的数据来构造自身。特点:在用户未定义的情况下,系统自动创建一个隐式的默认拷贝构造,它会将已存在对象中的数据成员逐个的拷贝到新创建的对象当中。 如果使用默认的拷贝构造,当类的数据成员指向堆区内存的时候,会拷贝指针,但不会拷贝堆内存(浅拷贝) 自定义拷贝来解决浅拷贝的问题(深拷贝)浅拷贝代码学习认识://如果.原创 2021-04-14 08:55:29 · 96 阅读 · 0 评论 -
007--C++构造析构对于栈区堆区的顺序(最优)
简介:栈区对象由系统自动释放,但堆区(动态内存建立的对象)对象由程序员自己手动释放。因此,建立一个对象,由于它所建立的方式,即栈区建立或则堆区建立,导致其对象的构造析构顺序不同。代码学习区://只需要给出实体对象,自动调用构造函数。//栈区的对象,先构造的后析构,后构造的先析构。//堆区的对象,先构造的先析构,后构造的后析构。#include<iostream>using namespace std;class A{public: A(){ cout <&.原创 2021-04-14 08:00:40 · 484 阅读 · 2 评论 -
006--C++类(this 指针最优)
* const(指针常量):指针不可以改动,但是指针所指向的数据可以被改动。cosnt *(常量指针):指针可以被改动,但是指针所指向的数据不可以被改动。类: 简简单单就是幸福哟········...原创 2021-04-10 20:40:34 · 99 阅读 · 0 评论 -
005--C++面向对象的设计思维(最优)
学习c++,我觉的最重要的就是清楚它的设计思维,简单来说,就是学习并理解面向对象的设计思维。面向对象的设计思维:每天学习一点就可以了,没必要把自己活的太累。毕竟,人生很短,活得轻松点吧·········...原创 2021-04-10 20:20:59 · 83 阅读 · 0 评论 -
004--C++动态内存分配(最优)
此下学习内容仅供参考学习,无详细解说,后期不断完善。敬请期待···········C++动态内存的分配与C语言动态内存分配的区别:C语言的动态内存分配是函数,C++的动态内存分配是运算符。 C语言的动态内存分配不能和C++的动态内存分配不能混合使用。C++动态内存分配new和delete 的用法:使用动态内存分配时的注意事项:C++动态内存分配二维指针,二维数组的使用:动态内存分配代码学习参考:#include"stdlib.h"//动态内存:ma00fc c.原创 2021-04-06 12:56:56 · 381 阅读 · 0 评论