C++基础——子类转父类转子类 (派生类转基类转派生类)

 1 // TransformChildToParentToChild.cpp : 定义控制台应用程序的入口点。
 2 //王林森
 3
 4 #include "stdafx.h"
 5 #include <iostream>
 6
 7 using namespace std;
 8
 9
10 class CParent
11 {
12 public:
13     CParent():nP(1){}
14     int GetP(){return nP;}
15 private:
16     int nP;
17 };
18
19 class CChild:public CParent
20 {
21 public:
22     CChild():nC(2){}
23     int GetC(){return nC;}
24 private:
25     int nC;
26 };
27
28
29
30 int _tmain(int argc, _TCHAR* argv[])
31 {
32     CParent* poParent=(CParent*)new CChild;
33     cout<<poParent->GetP()<<endl;
34
35     CChild* poChild=(CChild*)poParent;
36     cout<<poChild->GetC()<<endl;
37
38     return 0;
39 }

时间: 2024-08-24 12:51:43

C++基础——子类转父类转子类 (派生类转基类转派生类)的相关文章

python基础之继承实现原理、子类调用父类的方法、封装

继承实现原理 python中的类可以同时继承多个父类,继承的顺序有两种:深度优先和广度优先. 一般来讲,经典类在多继承的情况下会按照深度优先的方式查找,新式类会按照广度优先的方式查找 示例解析: 没有共同头部父类的类型 1 class E: 2 def test(self): 3 print('from E') 4 # pass 5 class F: 6 def test(self): 7 print('from F') 8 # pass 9 10 class C: 11 def test(se

子类继承父类的私有属性

最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单的访问,这里暂不考虑Java反射机制,于是我分析,子类不能继承父类私有的属性及方法,但是分析了内存后,我发现我是错的,在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象.所以所谓的继承使子类拥有父类所有的属性和方法

C++ 类的继承和派生

继承的优点:减少代码的冗余 提高代码的重用性 派生类定义格式: Class 派生类名 : 继承方式 基类名{ //派生类新增的数据成员和成员函数 }; class 子类: 继承方式 父类名{ //子类新增的数据成员和成员函数 }; 继承方式分类: public : 公有继承 (重要) private : 私有继承 protected : 保护继承 注意: 子类继承父类,子类拥有父类中全部成员变量和成员方法(除了构造和析构之外的成员方法),但是在子类中,继承的成员并不一定能直接访问,不同的继承方式

Python基础-接口与归一化设计、抽象类、继承顺序、子类调用父类,多态与多态性

一.接口与归一化设计 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 由于python中没有Interface方法,根据Java接口的定义,可以抽象出python中的接口:一个类所具有的方法的特征集合. 可以通过继承来实现接口方法,在python中,继承有两种用途: 继承基类的方法,并且做出自己的改变或者扩展(代码重用) 声明某个子类兼容于某基类,定义一个接口类Inte

C#基础知识—父类和子类的关系

public class ParentClass { public ParentClass() { } public string NamePropety { get; set; } public void GetName() { } } public class ChildClass:ParentClass { public ChildClass() { } public int Age { get; set; } public int GetAge() { return 10; } } Pa

面向对象-继承,顺序查找,派生,子类访问父类,菱形继承

OOP的三大特征(优势) 1.封装 2.继承 3.多态 继承:是两个对象之间产生的一种关系 a继承b 在OOP的程序中继承是描述类与类之间的一种关系继承的好处:程序中 一个类a继承另一个类b a就可以使用B的属性和方法具体的说:继承极大的提高了代码的重用性继承描述的是 什么 是什么的关系 注意:在使用集成时,要自己分析.类与类之间的关系 不应该违反显示生活中的原则在使用继承的时候一定是先抽象 在继承抽象:抽取一堆类共同拥有的内容 形成一个新的抽象的概念(也称为公共基类) 这个过程就叫做 抽象注意

Python3基础 父,子类普通方法同名 子类方法覆盖父类方法

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: class Parent : def hello(self) : print('我是本') class Child(Parent) : #child类继承与 parent类 def hello(self) : #parent类中有hello方法,但是这里也定义了一个hello方

java基础入门-父类引用子类对象(2)-抽象类

抽象类:具有抽象方法的类,需要使用abstract关键字修饰 关系图 下面上代码 package com.ray.testobject; /** * 抽象类 * * @author ray * @since 2015-05-02 * @version 1.0 * */ public abstract class Person { public abstract void getDescription(); } package com.ray.testobject; /** * 实现类 * * @

JavaSE8基础 不同包下的子类中,创建子类对象可以继承到父类的 受保护/公有方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: 父类: package jizuiku; public class Person { void showDefault() { System.out.println("showDefault"); } private void showPrivate() { System.out.println(&