ICode9

精准搜索请尝试: 精确搜索
  • [深度探索C++对象模型] 第一章 关于对象2022-05-26 11:03:44

    1. 什么是虚函数表?虚函数表的结构? 带有虚函数的类对象或者存在虚拟继承的类对象中,会有一个指向虚函数表的指针vptr,其指向一的一块内存中保存着当前类所对应的虚函数的地址。这块内存是一张表格,即为虚函数表 下图为类对象中虚函数表的示意图         2. 虚拟继承解决的问题? 虚

  • 什么是设计模式2022-05-20 18:34:52

    在软件工程中,设计模式是对软件设计中普遍存在的各种问题,所提出的解决方案。 换句话说,设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计的经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。 设计模式原则 1、开闭原则(Open Close Prin

  • C# 在调用时检测子类是否对基类的方法进行了重写2022-05-20 12:03:04

    使用场景 public bool IsOverrideOnNothing() { var mName = nameof(OnNothing); var key = this.GetType().FullName + "_" + mName; if (!_overrideCache.ContainsKey(key)) { //查找 protected https://stackoverflow.com/questions/3393975/

  • python中的抽象类和抽象方法2022-05-17 23:31:42

    1.什么是抽象类 抽象类是比较特殊的父类,只可以被继承,但是不能实例化对象 抽象方法可以不用实现具体的方法逻辑,但是在继承的子类中需要对继承的方法重写具体的实现逻辑 2.abc是什么 abc(抽象基类),主要定义了基本类和最基本的抽象方法,可以为子类定义共有的API,不需要具体实现。 abc模块

  • python所有的内置异常类型汇总2022-05-06 22:01:29

    在 Python 中,所有异常必须为一个派生自 BaseException 的类的实例。 通过子类化创建的两个不相关异常类永远是不等效的,既使它们具有相同的名称。 下列异常主要被用作其他异常的基类。 BaseException: 所有异常的基类 Exception(重点掌握) 所有内置的非系统退出类异常都派生自此类。

  • C++智能指针类型转换2022-05-05 12:31:54

    #include <iostream> #include <memory> struct Base { int a; virtual void f() const { std::cout << "I am base!\n";} virtual ~Base(){} }; struct Derived : Base { void d() { std::cout << "Deri

  • 【CPlusPlusThings笔记】纯虚函数和抽象类2022-05-03 21:02:50

    纯虚函数和抽象类 1. 纯虚函数与抽象类 C++中的纯虚函数(或抽象函数)是我们没有实现的虚函数!我们只需声明它! 通过声明中赋值0来声明纯虚函数! 纯虚函数:没有函数体的虚函数 抽象类:包含纯虚函数的类 抽象类只能作为基类来派生新类使用,不能创建抽象类的对象。但可以使用抽象类的指

  • C++ 硬核知识点: 数据段/代码段/内存分配/虚函数/继承/多态2022-05-02 14:04:00

    1. 结构体struct和类class占用内存大小解析    今天面试遇到一个比较有意思的问题, 这里安排一下    空结构体和空类占内存大小是多少?答案:1. C++指定空结构体和空类所占内存大小为1,2. C 的空类和空结构体大小为0为何c++会有这样的规定呢?no object shall have the same a

  • 【Python】try/except 异常处理2022-04-25 09:31:24

    异常   在程序执行过程中,出现错误,影响程序的正常运行 1/0   异常:           异常处理   异常发生时,捕获错误进行处理,使程序正常运行 语法: try: <语句> # 正常操作代码 except <名字>: # Exception等 <语句> # 如果在try部份引发了'name'异常,执行本

  • C++的三种继承方式详解以及区别2022-04-22 19:33:19

    目录目录C++的三种继承方式详解以及区别前言一、public继承二、protected继承三、private继承四、三者区别五、总结后话 C++的三种继承方式详解以及区别 前言 我发现有时候概念性的东西,理解起来还是很难的,于是本文用简单的几个例子,来说明这三种不同的继承方式,他们之前的区别~ 一

  • C++ dynamic_cast2022-04-17 23:35:37

    dynamic_cast应用于类的指针、类的引用或者 void*。 dynamic_cast运算符可以在执行期决定真正的类型。 如果downcast是安全的(也就说,如果基类指针或者引用确实指向一个派生类对象)这个运算符会传回适当转型过的指针。 如果downcast不安全,这个运算符会传回空指针(也就是说,基类指针或

  • 关于抽象基类中的纯虚函数不能是构造函数、析构函数和赋值运算符的问题2022-04-16 22:35:26

    P415 1.抽象基类中的纯虚函数必须要在继承类中被实现,否则该继承类也称为抽象基类;则该继承类就不能创建对象。 2.注意不要将构造函数、析构函数和类的成员重载赋值运算符函数设置为纯虚函数;因为抽象基类中的纯虚函数必须要在继承类中被实现,而这些函数并不能在继承类中被继承(p430)(

  • C++篇:第八章_类_知识点大全2022-04-10 21:03:43

    C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 八、类 (一)类的概念与规则 “子类”和“子类型”的区别: ① 替换原则只适合于"子类型"关系,而一般编程语言只是考虑了"子类"关系, ② 子类 : 说明了新类是继承自父类,故

  • c++的菱形继承2022-04-10 21:00:10

    两个派生类继承自同一个基类 又有某个类同时继承两个派生类 这种继承被称为菱形继承 这种继承会有一个问题,就是最后一个继承时,会将最开始的基类复制两次 所以在两个父类有相同数据的时候,要通过作用域进行区分 为了彻底解决这个问题,可以使用虚继承,在继承方式前加virtual。class per

  • c++--对象this指针调整2022-04-07 16:02:17

    派生类对象他是包含基类子对象的 如果派生类只是从一个基类继承的话,那么这个派生类对象的地址和基类子对象的地址相同; 但如果派生类对象同时继承多个基类,那么要注意,第一个基类子对象的开地址和派生类的开始地址相同,后续这些基类子类对象的开始地址和派生类对象的开始地址相差多少

  • 面向对象OOP基本六大原则2022-04-02 00:31:07

    面向对象(OOP)六大基本原则 OOP基本上有6大原则,而实际上都是互补的,也就是说一些原则需要利用另一些原则来实现自己。6大原则如下: Open-Close Principle(OCP),开-闭原则 设计要对扩展有好的支持,而对修改要严格限制。这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software(

  • C#中base关键字的几种用法 (base可以对派生类(子类)实例中调用基类(父类)的构造函数方法或者基类上已经被重写的虚方法)2022-04-01 09:04:23

    base最大的使用就是“面向对象”开发的多态中。base可以对派生类(子类)实例中调用基类(父类)的构造函数方法或者基类上已经被重写的虚方法。 首先声明两个类 A B public class A { public A() { Console.WriteLine("我是父类A"); } p

  • C++ POD类型2022-03-29 01:03:24

    目录什么是POD类型?如何判断一个类型是否为平凡的类型?什么是标准布局?如何判断类型是一个标准布局的类型?参考 什么是POD类型? POD是Plain Old Data,是C++定义的一类数据结构,如char,int,float,double等都是POD类型。Plain顾名思义,表明POD是个普通类型,Old代表是旧的,与C语言兼容,意味着可以用

  • 《设计模式》学习总结(上)——八大设计原则2022-03-27 00:32:21

    三月份的另一个任务是李建忠老师讲解的“设计模式”这门课,整体上过了一遍,对23重设计模式也有了一个整体认识,大概了解了每个模式及其适用场景,这门课一个非常好的地方就是对每个模式讲解前先按照不考虑软件系统扩展性的思路写一份强耦合的代码,然后对其存在的问题进行分析,最后自然而

  • C++RTTI运算符2022-03-21 18:00:52

    概述 运行时类型识别(RTTI)两个重要运算符: typeid:返回表达式类型。dynamic_cast:将基类指针或引用安全转换成派生类的指针或引用。 oop回顾: 不存在从基类向派生类的隐式转换。原因是因为派生类对象中包含基类部分和派生类部分,而基类对象中只包含有基类部分。不存在基类指针或

  • 什么是C++的对象切割?2022-03-21 14:33:05

    我:将派生类对象的值赋值给基类对象,那么只会将将派生类从基类继承到的属性字段的值赋值给基类的对应属性,专属于派生类的值则不会被拷贝,这就叫做对象切割。     书本解释: 如果把派生类的对象赋给基类对象,那么前者中与基类对应的那一部分内容,就会拷贝到后者,而前者中所特有的内容则

  • 在SSM框架整合中使用单元测试2022-03-21 13:31:13

    第一种方式,使用 new ClassPathXmlApplicationContext("applicationContext.xml"); 它会装载并实例化上下文的bean。 第二种方式:在测试类中加入一个基类 写上注解 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"classpath:spring/spring-dao.xml"}) 这样单元

  • 清华郑莉C++语言程序设计学习笔记(3)- 继承与派生、多态性2022-03-20 21:00:19

    第七章 继承与派生 7.1 继承的基本概念和语法 概述:保持已有类的特性而构造新类的过程称为继承,在已有类的基础上新增自己的特性而产生新类的过程称为派生。 基类:被继承的已有类 派生类:派生出的新类 直接基类:直接参与派生出某类的基类 间接基类:基类的基类甚至更高层的基类 继承

  • C++复习2022-03-20 17:02:58

    1、面向对象编程的特性 抽象、封装和数据隐藏、多态、继承、代码的可重用性 2、过程性编程 面向过程编程:首先要考虑遵循的步骤,然后考虑如何表示这些数据。并不需要程序一直运行,用户可能希望能够将数据存储在一个文件中,然后从这个文件中读取数据。 面向对象编程:首先考虑数

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有