首页 > 编程语言 >【点乒的超级无敌C++总结】

【点乒的超级无敌C++总结】

时间:2025-01-17 21:00:37浏览次数:3  
标签:函数 对象 子类 超级 无敌 静态 C++ 构造 拷贝

C的面向过程:

想法就是运行高效,版本更新擦除重来

C++的面向对象:

封装:概况提炼 属性有一些被隐藏有一些可以通过公有的方式查看修改(不太准)

继承:父类把属性复制一份给子类用

多态:多种形态(函数调用可以有多种的执行内容)

什么是类?

具有相同的属性方法的个体的抽象

什么是构造函数?

创建函数时自动调用的 和类名相同的 没有返回值的函数

默认构造:没有任何构造函数时才存在的构造

浅拷贝 深拷贝区别(怎么说)

浅拷贝:赋值

深拷贝:自己用自己的,回收也回收自己的

浅拷贝的场景:

(特点是数据共享)

初始化列表

父(A)子(初始化列表里先B的对象成员初始化然后后面构造C)

拷贝构造是什么?

用已经有的对象给一个对象初始化,(传参参数是一个对象,返回值返回值是一个对象)

给初值和赋值要区别的说

析构的问题:

虚析构的场景:防止的父类指向子类对象,执行父类析构,漏掉子类的独有部分

const

修饰成员属性:

注意给初值

修饰成员函数:(常用的有get方法)

修饰的*this

常对象不能用普通函数

普通对象可以用常函数

思考题:

const 枚举 #define的区别

(待续)

静态特点:

静态全局变量:1.本文件有效

静态成员属性:1.多个对象共用一个静态属性(共用) 2.子类不能继承(父子用一个) 3.类外初始化(cpp里初始化)4.不依赖对象

静态成员函数:1.不依赖对象 2.不能实现多态 3.不能虚 4.不能直接调用类中的非静态成员(需要有对象)

static修饰类外函数:1.本文件有效 2.一直到程序结束都存在

静态与全局的区别(全局静态和局部静态)

virtual 

实现多态

inline 关键字 内联函数

适合代码少,调用频繁

构造适合内联

析构可以是

虚析构 (不太行,虚析构的特性就是执行是变化的)

friend友元

一种只让部分类或函数用的想法

1.友元成员不是这个类的成员

2.友元函数要创建对象再用

3.破坏封装(现在多用get方法)

4.不可继承

纯虚函数:

抽象类:含有纯虚函数的类

接口类:函数都是纯虚函数

子类必须实现父类纯虚函数的方法,才能实例化对象

重载操作符

系统会自己写的(赋值,取地址)

()的重载->仿函数

赋值与拷贝构造比较

1.返回值

2.空间的处理

3.一个是修改一个是初始化

MyString 析构 构造 拷贝构造 重载操作符

空类中包含的函数:构造 构造 拷贝构造 赋值重载操作符 取地址重载操作符

为什么拷贝构造要对要拷贝的目标用引用?

赋值操作会死循环

小题目

有一个虚函数呢? 4

哪些函数不能被virtual 关键字修饰 ?

1.friend 2.static 3.inline 4.构造 5.类外的普通函数

类与类之间关系

类图

多态

静态多态:(重载和模板)(模板类)

代码不变,功能可变,(函数指针 )

动态多态:(运行时确定)

1.父类指针指向子类对象

2.父类有虚函数

3.子类重写虚函数

4.调用虚函数 需要虚指针 找到虚表

5.虚指针(对象的前4个字节)在创建对象时才产生,所以要运行时才确定

上面的是我总结的,

下图的比较细

分析输出结果

虚函数优缺点:

重载和重写

重载 :相同作用域,函数名相同,参数列表不同

重写:覆盖,参数列表相同,函数名相同,返回值相同(有特殊情况,暂时不考虑)

C++11特性

auto (需要看看)

增强的范围for

标签:函数,对象,子类,超级,无敌,静态,C++,构造,拷贝
From: https://blog.csdn.net/weixin_74068440/article/details/145166923

相关文章

  • 【华为OD-E卷 - 数组连续和 100分(python、java、c++、js、c)】
    【华为OD-E卷-数组连续和100分(python、java、c++、js、c)】题目给定一个含有N个正整数的数组,求出有多少个连续区间(包括单个正整数),它们的和大于等于x输入描述第一行两个整数Nx(0<N<=100000,0<=x<=10000000)第二行有N个正整数(每个正整数小于等于100)输出......
  • 202412 青少年软件编程等级考试C/C++ 二级真题答案及解析(电子学会)
    第1题逆行网上有个段子说:妻子在家听广播,听到某高速路上有一辆车在逆行,想到丈夫在那条高速上行驶,就打电话对丈夫说:“老公啊,你走的那条高速上有一辆车在逆行,你小心点。”她丈夫说:“何止啊!我看好几百辆车都在逆行!”现在我们查了一下高速公路上拍到的好几百辆车的时速,发现有的......
  • C++编程:现代软件开发的基石
    C++编程:现代软件开发的基石C++是一种强大的编程语言,广泛应用于软件开发、游戏设计、系统编程等多个领域。它由贝尔实验室的比jarneStroustrup于1979年创建,旨在将面向过程的编程与面向对象的编程结合起来。C++的特点之一是其高性能。由于C++允许对硬件进行直接操作,程序员可以......
  • 深度剖析C++在复杂系统开发中的应用与优化策略
    一、引言1.1研究背景与意义在当今数字化时代,软件开发已成为推动各行业发展的核心驱动力。C++作为一种强大且灵活的编程语言,在现代软件开发领域占据着举足轻重的地位。自1985年正式发布以来,C++凭借其卓越的性能、对硬件的直接操控能力以及丰富的编程范式,广泛应用于操作系统、......
  • C++ 开发前景与 operator 的益处
    一、C++的开发前景在当下的软件开发领域,C++凭借其独特优势,展现出极为广阔的发展前景。(一)性能卓越C++作为一种高效的编程语言,能够直接对硬件资源进行控制与优化。这一特性使其在对性能要求极高的场景中至关重要,如游戏开发、大型工业控制系统、高性能计算等领域。以游戏开......
  • C/C++基础之查找
    <1>min和max函数min(a,b)返回a和b中较小的那个值,max(a,b)返回a和b中较大的那个值,这两个函数都只能传入两个值,或者传入一个列表。<2>min_element()和max_element()min_element(a,b)返回地址[a,b)中最小的那个值的地址(迭代器),传入参数两个地址或迭代器。max_element(a,b)返回......
  • 用C++实现一个基于模板的观察者设计模式
    观察者模式定义观察者模式(ObserverPattern)是一种行为型设计模式,用于定义对象间的一对多依赖关系,使得当一个对象状态发生变化时,其所有依赖它的对象都会收到通知并自动更新。核心概念角色定义Subject(被观察者):持有观察者列表,维护观察者的注册和移除。状态改变时通知所有观......
  • C/C++小知识
    函数模块命令行解析作为程序开始的第一步,当然长短命令都要处理,直接开整!#include<getopt.h>#defineXXX_ARG1000//用于仅长选项,后面数字可随便定义/***命令行解析类*一般仅用于解析、检验合理性*图方便可以把参数直接存在这里,函数体较大的话就......
  • C语言和C++的区别及面向对象的了解
    C语言和C++的区别语言类型:C语言:是一种面向过程的编程语言,主要关注算法和数据结构,强调对计算机硬件的直接操作和程序的执行效率。C++:是一种面向对象的编程语言,它在C语言的基础上扩展了面向对象的特性,如类、对象、继承、多态等,使得程序的结构更加清晰,可维护性和可扩展......
  • 云上超级计算机是什么?靠谱吗?ToDesk云电脑锤爆网吧游戏
            云上计算机,或称为云电脑、云端超级计算机,是一种基于云计算的高性能计算机使用服务。它将大量的计算资源和存储资源集中在一起,通过网络向用户提供按时按需的设备操作全新。为满足诸多群体的好奇心,以下小编就简单罗列下对它的详细解释以及对其靠谱性的分析,同时......