C++
文章平均质量分 63
杨sir~
Yes sir
展开
-
C++程序设计 继承------继承方式 继承中构造函数析构函数的顺序 继承同名成员处理方式 继承静态同名成员处理方式 菱形继承(virtual)
继承前言<1>继承是面向对象的三大特性之一<2>有些类与类之间存在特殊的关系,我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还拥有自己的特性。这个时候我们就可以考虑利用继承的技术.<3>继承的好处就是减少重复代码<4>语法: class 子类 : 继承方式 父类<5>子类有时候也称为派生类 父类有时候也被称为基类一、继承方式继承语法: class 派生类:继承方式 父类1.公有继承在公有继承的时候,基类的私有成员是不原创 2021-04-21 18:54:10 · 177 阅读 · 0 评论 -
C++程序设计 运算符重载————加号运算符 左移运算符 递增运算符 赋值运算符 关系运算符 函数调用运算符
运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。1.加号运算符重载下面的程序实现两个自定义数据类型进行相加的运算#include"iostream"using namespace std;class Person{ public: int pa; int pb;//类函数成员做函数重载 Person operator +(Person &p) { Person temp; temp.pa=this-&g原创 2021-04-20 17:57:48 · 263 阅读 · 1 评论 -
C++2类和对象 友元 全局函数做友元 类做友元 类内成员函数做友元
友元函数简介:在程序里面有些私有属性也想让类外的函数或类去访问,就需要用到友元函数。友元的目的就是让一个函数或类的成员去访问另一个类的私有成员。如同两个陌生人强制建立友谊,瞬间感情升温变成好朋友。关键字:friend 用三个程序解释三种方法1.全局函数做友元#include"iostream"using namespace std;class Person{ friend void friend_people(Person *p); public: string y_name="ya原创 2021-04-10 15:49:08 · 241 阅读 · 0 评论 -
C++1类和对象 对象特性3 static静态成员函数 C++对象模型 this指针 const修饰成员函数
边学边记边思考1.静态成员函数<1>静态成员函数不可以访问非静态成员变量,因为无法区分该非静态成员变量到底属于哪个成员。因此静态成员函数只能调用静态成员变量,因为静态成员函数只有一份,属于所有的对象,大家共同调用。如果把静态成员函数放到私有成员下面,在类外也是无法访问的。<2>当类内存在静态成员变量的时候需要初始化,具体的原因可以看下面这篇文章https://www.cnblogs.com/ceason/articles/12852889.html2.C++对象模型<原创 2021-04-10 11:21:19 · 212 阅读 · 0 评论 -
C++1类和对象 对象特性2 深拷贝与浅拷贝 初始化列表 类的对象做类的成员
边学边记边思考1.深拷贝与浅拷贝<1>浅拷贝:简单的赋值拷贝操作,也就是我们熟悉的等号赋值举例说明:类 对象1(值); 类 对象2(对象1);:此时对象2拥有对象1的值<2>深拷贝:在堆区申请一段空间,进行拷贝操作。在这里要声明一个问题,当我们通过new在堆区申请一块空间的时候,并且进行了拷贝,这个时候拷贝与被拷贝的变量指向的堆区空间是同一个空间,当我们在析构函数中进行释放的时候就会出现重复释放的情况,会出现错误,这也是浅拷贝存在的致命问题。解决问题的办法就是通过深拷贝解原创 2021-04-10 11:15:03 · 109 阅读 · 0 评论 -
C++1类和对象 对象特性1 构造函数与析构函数 构造函数的调用与分类 调用时机以及构造函数的调用规则
一、构造函数与析构函数1.C++利用构造函数和析构函数去做两件事,他们分别是:<1>构造函数:主要作用是在创建对象的时候为对象的成员属性进行赋值,构造函数由编译器自动调用,无需我们手动调用。<2>析构函数:析构函数是在系统运行结束前,对对象进行销毁工作也就是释放地址空间。2.构造函数的语法<1>函数无返回值,无需写void<2>函数名称与类名相同<3>可以含参数,实现函数重载<4>程序在调用对象的时候会自动调用构造,无需原创 2021-04-08 22:31:05 · 216 阅读 · 0 评论 -
C++内存四区的概念
内存四区1.内存分区模型C++在运行的过程中将内存大方向划分为四个区域<1>代码区:存放代码的二进制代码,由操作系统进行管理<2>全局区:存放全局变量和静态变量以及常量<3>栈区:由编译器自动分配释放,存放函数的参数值,局部变量等<4>堆区:由程序员分配和释放,若程序员不释放,当程序运行结束后系统将会自动释放意义:不同区域存放的数据,赋予不同的生命周期,给我们最大的灵活编程2.程序运行前和运行后在程序编译后,生成exe可执行文件,我们通过DE原创 2021-04-07 18:54:52 · 273 阅读 · 0 评论