派生类

谭浩强《C++面向对象程序设计》知识点总结

匿名 (未验证) 提交于 2019-12-03 00:27:02
输入:采用标准输入流对象 istream 和提取运算符 cin>> 输出:采用标准输出流对象 ostream 和插入运算符 cout<< 一名多用,要求重载函数的参数个数或类型与原来的不同 给功能相似的函数建立一个统一的模板 要求:函数的参数个数和原来的要相同 格式: template <typename T> 通用函数定义 相当于给变量起一个别名,变量和其引用共享同一内存空间 e.g. int a; int &b = a; //声明b是一个int型变量a的引用 String类 格式: new 类型(初值) //返回一个指向数据类型的指针 new 类型[ num ] //new一个含有num个元素的类型数组 delete [ ] 指针变量 //[ ]表示对数组空间操作,可选 2.1 瀵硅薄 包含作为属性的数据成员和作为行为的成员函数,成员函数用来对数据进行操作,以便实现某些功能。 面向过程程序设计: 程序=数据结构+算法 面向对象程序设计: 对象=数据结构+算法, 程序=对象s+消息 抽象 :将有关事物归纳集中,作用是表示同一类事物的本质。类是对象的抽象,而对象是类的具体表现形式。 封装 :将数据和操作数据的函数绑定在一起,将具体的实现细节隐藏起来,仅对外保留接口。 继承 :利用已有类建立新类,新类从已有类中获得其意义特性的机制。 多态

派生类的声明

匿名 (未验证) 提交于 2019-12-03 00:26:01
(1) decimal 与浮点型相比, decimal decimal 类型的大致范围和精度如下所示。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 演示方法参数 { class Person { private string name; private char sex; private int age; public Person(string n, char s, int a) { name = n; sex = s; age = a; } public void Display() { Console.WriteLine("name:{0}", name); Console.WriteLine("sex:{0}", sex); Console.WriteLine("age:{0}", age); } } //派生类 class Employee : Person { private string department; private decimal salary; //如果想要调用基类的非默认构造函数,必须使用base关键字。 public Employee

第四章习题

匿名 (未验证) 提交于 2019-12-03 00:22:01
38381415125 鲍安狄 15移动本 一、填空题 (1)如类果类A继承了B,那么类A被称为 基 类,而类B被称为 派生 类。 (2)C++的两种继承为: 单继承 和 多继承 。 (3)在默认情况下的继承方式为 私有继承方式 。 (4)从基类中公有派生一个类时,基类的公有成员就成为派生类的 公有 成员,而这个基类的保护成员就成为派生类的 保护 成员。 (5)C++提供了 多继承 机制,允许一个派生类可以继承多个基类,甚至这些基类是互不相关的。 (6)类X中的名字N 支配类Y中同名的名字N,是指类X以类Y为它的一个基类,这称为 支配规则 。 (7)引进虚基类的目的是 解决二义性 。 (8)在一个继承结构中,解决二义性的方法有 使用作用域运算符 和 引进虚基类 。 二、选择题(至少选一个,可以多选) (1)C++语言建立类族是通过( B )。 A.类的嵌套 B.类的继承 C.虚函数 D.抽象类 (2) 继承是( CD )的方法。 A.将特殊的类变成通用的类 B.将通用的参数传送给特殊的类的对象 C.将通用的类变成特殊的类 D.将已有的类添加新的特性,但不重写它们 (3)继承的优点是( ABC )。 A.扩大类的使用范围,更便于使用类库 B.避免重写程序代码,提供有用的概念框架 C.把类转化成有条理的层次结构 D.通过继承的自然选择和重写使类进一步拓展 (4)下面叙述不正确的是( C

C++虚函数

匿名 (未验证) 提交于 2019-12-03 00:22:01
众所周知,C++虚函数是一大难点,也是面试过程中必考部分。此次,从虚函数的相关概念、虚函数表、纯虚函数、再到虚继承等等跟虚函数相关部分,做一个比较细致的整理和复习。 虚函数 OOP的核心思想是多态性(polymorphism)。把具有继承关系的多个类型称为多态类型。引用或指针的静态类型与动态类型不同这一事实正是C++实现多态性的根本。 C++ 的多态实现即是通过虚函数。在C++中,基类将类型相关的函数与派生类不做改变直接继承的函数区别对待。对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明为虚函数(virtual function)。 C++在使用基类的引用或指针调用一个虚函数成员函数时会执行动态绑定。因为只有直到运行时才能知道调用了那个版本的虚函数,所以 所有的虚函数必须有定义。 动态绑定只有当通过指针或引用调用虚函数时才会发生。 一旦某个函数被声明为虚函数,则在所有派生类中它都是虚函数。所以在派生类中可以再一次使用virtual指出,也可以不用。 如果某次函数调用使用了默认实参,则该实参值由本次调用的静态类型决定。换句话说,如果我们通过基类的引用或指针调用函数,则使用基类中定义的默认实参,即使实际运行的是派生类的函数版本也是如此。此时,传入派生类函数的将是基类函数定义的默认实参。 在某些情况下,我们希望对虚函数的调用不进行动态绑定

继承

匿名 (未验证) 提交于 2019-12-03 00:14:01
继承方式规定了如何访问从基类继承的成员。 继承关键字为:public,protected和private。如果不显示地给出继承方式关键字,系统的默认值就认为是私有继承。 类的继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限。 例子: #include <iostream> using namespace std ; class Point { public : void initPoint ( float x = 0 , float y = 0 ) { this -> x = x ; this -> y = y ; } void move ( float offX , float offY ) { x += offX ; y += offY ; } float getX () { return x ; } float getY () { return y ; } private : float x , y ; }; class Rectangle : public Point { private : float w , h ; public : void initRectangle ( float x , float y , float w , float h ) { initPoint ( x , y ); this -> w = w ; this -> h

C#抽象类

匿名 (未验证) 提交于 2019-12-02 22:06:11
一、继承 什么是继承 :继承是允许重用现有类去创建新类的过程。分类的原则是一个类派生出来的子类具有这个类的所有非私有的属性。 1 、继承 C# 中的类: C#不支持多重继承,C#类始终继承自一个基类(如果未在声明中指定一个基类,则继承自System.Object)。 派生类继承基类的语法如下: 1 using System; 2 public class Person 3 { 4 //这是基类 5 } 6 public class Student:Person 7 { 8 //这是派生类 9 } 注:派生类继承基类时用“:”符号连接,派生类继承基类的所有非私有成员变量和方法。 2 、调用基类的构造函数: 如果对类没有定义显式构造函数,则编译器将提供默认的构造函数,以初始化这些类的成员字段。但是,如果显式添加了构造函数,就可以有效控制整个构造过程。 示例: 1 using System; 2 namespace Jicheng 3 { 4 //基类 5 public class Person 6 { 7 public string _name; 8 public uint _age; 9 //基类的构造函数 10 public Person(string name,uint age) 11 { 12 this._name = name; 13 this._age = age; 14

《C++ 习题与解析》笔记

人盡茶涼 提交于 2019-12-02 14:53:46
目录 ####Chapter-1 C++语言概述(错题) ####Chapter-2 类和对象 ####Chapter-3 引用 ####Chapter-4 友元函数 #### Chapter-5 运算符重载 #### Chapter-6 继承与派生(错题) #### Chapter-7 多态性和虚函数 #### Chapter-8 异常处理 C++基础: 基础数据类型,简单输入输出,流程控制语句,函数与编译预处理,数组,结构体,指针与引用 C++面向对象部分: 类与对象,构造和析构函数,继承与派生,友元,虚函数,静态成员,运算符重载 Chapter-1 C++语言概述 位运算操作符 单目:~(按位求反) 双目:&(与)、 |(或)、 ^(按位异或) 移位运算符 << (左移): 左移是将一个二进制数按指定的位数向左移位,移掉的位被丢弃,右边移出的空位一律补0 >> (右移): 右移是将一个二进制数按指定的位数向右移位,移掉的位被丢弃,左边移出的空位一律补0,或补符号位 逗号运算符 d1, d2, d3, d4: 计算一个逗号表达式的值时,从左至右依次计算各个表达式的值,最后计算的一个表达式的值和类型便是整个逗号表达式的值和类型 二维数组指针表示 //输出对应的值的三种方法 int b[2][3]; a. *(*(b+i)+j) b. *(b[i]+j) c. *(&b[0][0]

C# 与 Java 的一些差异

荒凉一梦 提交于 2019-12-02 14:35:43
如果你是 Java 开发人员,则可以在 Xamarin 平台上充分利用你的技能和现有代码,同时获得 C# 的代码重用优势。你会发现 C# 语法与 Java 语法非常相似,这两种语言提供非常类似的功能。此外,你会发现 C# 的特有功能,这些功能将帮助你轻松进行开发工作。 概述 本文介绍面向 Java 开发人员的 C# 编程,主要侧重于在开发 Xamarin.Android 应用程序时会遇到的 C# 语言功能。 此外,本文说明了这些功能与其 Java 对应项的区别所在,并介绍了在 Java 中不可用的重要 C# 功能(与 Xamarin.Android 相关)。 包含指向附加参考资料的链接,因此你可以将本文用作一个“起点”以进一步研究 C# 和 .NET。 如果你熟悉 Java,那么对于 C# 语法的使用便可以轻松上手。 C# 语法与 Java 语法非常相似 – C# 是“大括号”语言,如 Java、C 和 C++。 在许多方面,C# 语法读起来像是 Java 语法的超集,但是有一些重命名和新增的关键字。 可以在 C# 中找到 Java 的许多主要特征: 面向对象的基于类的编程 强类型化 支持接口 泛型 垃圾回收 运行时编译 Java 和 C# 都被编译为中间语言,在托管执行环境中运行。 C# 和 Java 都是静态类型,这两种语言将字符串视为不可变类型。 这两种语言使用单根类层次结构

013 派生类

牧云@^-^@ 提交于 2019-12-02 13:28:55
/* 目录: 一 派生类 - 数据大小 二 派生类 - 数据使用 三 数据使用优化 v1 四 数据使用优化 v2 五 Clist基类扩展 : 派生类ListBj - 简单使用 六 Clist基类扩展 : 派生类ListBj - 简单项目 */ 一 派生类 - 数据大小   压缩包: 链接 二 派生类 - 数据使用 三 数据使用优化 v1 四 数据使用优化 v2   压缩包: 链接 五 Clist基类扩展 : 派生类ListBj - 简单使用 六 Clist基类扩展 : 派生类ListBj - 简单项目   压缩包: 链接 来源: https://www.cnblogs.com/huafan/p/11750012.html

纯虚函数与抽象类

最后都变了- 提交于 2019-12-02 12:40:25
纯虚函数与抽象类 一、纯虚函数 什么是纯虚函数? 纯虚函数是在基类中定义的一个虚函数,它在基类中没有具体的操作内容,是要在派生类中根据各自的需求定义。其声明格式为 virtual 函数类型 函数名(参数表)=0 为什么要用纯虚函数? 对于一些函数,需要在不同的派生类中用来执行相同类型操作来建立联系,那么就会想到虚函数,在基类中将其定义为虚函数,派生类中定义将基类的覆盖,通过基类的指针调用,就会起到此效果。但是,虚函数是需要在基类中定义,并要有具体的操作内容声明,而对于一些基类无法给出有意义的实现时,用虚函数就不知道该如何处理。纯虚函数就可以实现这一功能。代码一: 、、、 #include<iostream> using namespace std; class Base1 { public:virtual void display() const = 0;//设置纯虚函数 }; class Base2 :public Base1 { public:void display()const; }; void Base2::display()const { cout << "Base2::display()" << endl; } class Derived :public Base2 { public:void display()const; }; void Derived: