`
蒙面考拉
  • 浏览: 156042 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

多态赋值

 
阅读更多
#include <iostream> 
using namespace std;
class Pet //基类
{ public:
   virtual void Speak() { cout<<"How does a pet speak ?"<<endl; } 
};
class Cat : public Pet //派生类
{public:
    void Speak() { cout<<"miao!miao!"<<endl; }
}; 
class Dog : public Pet //派生类
{public:
    void Speak() { cout<<"wang!wang!"<<endl; }
};
void test (Pet &testClass){
      testClass.Speak();
}

int main()
{
    Pet obj,*p1; //基类对象指针p1, 基类对象obj
    Dog dog1;
    Cat cat1; 
    obj = dog1; //用Dog类对象给Pet类对象赋值
    obj.Speak(); 
    p1 = &cat1; //用Cat类对象地址给基类指针赋值
    p1->Speak(); 
    p1 = &dog1; //用Dog类对象地址给基类指针赋值
    p1->Speak(); 
    Pet &p4 = cat1; //以Cat类对象初始化Pet类引用 
    p4 .Speak();
	test(dog1);
	system("pause");
    return 0;
}

  

输出是:How does a pet speak ?  miao!miao!   wang!wang!   miao!miao!  wang!wang!

分享到:
评论

相关推荐

    一个多态的例子

    最近看DELPHI高手突破,把里面多态的说明,用代码实现了一下。多态性是允许用户将父对象设置成为与一个或更多的它的子对象相等的技术,赋值之后,基类 对象就可以根据当前赋值给它的派生类对象的特性以不同的方式...

    Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)

    下面小编就为大家带来一篇Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    D11接口,多态.zip_d11接口_java接口_mannerglc_多态

    接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象...Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。

    POLY-SAY-WHAT:具有 3D 形状的继承和多态性

    多说什么 继承和多态赋值 使用继承和多态的概念创建一个 3D 形状对象,将其属性应用于其他形状,如球体、圆锥体、圆柱体等。 请阅读 asg5.doc 以获取原始作业说明。

    C++中的多态与多重继承实现与Java的区别

    多态也即子类对父类成员函数进行了重写 (Override) 后,将一个子类指针赋值给父类,再对这个父类指针调用成员函数,会调用子类重写版本的成员函数。简单的例子: class Parent1 { public: virtual void sayHello...

    2维数组赋值.cpp

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...

    网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

    网二维数组的动态创建和释放.pdf ...网虛函数和多态.pdf 网虚析构函数.pdf 网友元函数(1).pdf 國友元函数.pdf 运算符重载(1).pdf 运算符重载pdf 指针函数和函数指针.pdf 网重载赋值号的问题?为什么不能自赋值1...

    C++类的继承和多态代码

    实现以下类的构造、复制构造、赋值运算符以及clone()和draw()函数,其中draw()函数只要求输出一个表示是哪个类的draw函数的字符串 在main()函数中写代码测试这些类的功能,尤其应使用一个Node类的指针去调用各个类的...

    PHP面向对象编程之深入理解方法重载与方法覆盖(多态)

    引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4编程技术内幕”...

    2维数组赋值(2).cpp

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...

    javascript 面向对象全新理练之继承与多态

    在讨论继承时,我们已经列出了一些基本概念了,那些概念是跟封装密切相关的概念,今天我们要讨论的基本概念,主要是跟继承与多态相关的,但是它们跟封装也有一些联系。 1.1 定义和赋值 变量定义是指用 var a; 这种...

    duotai.java

    Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。 如Student类可以为Person类的子类。那么一个Student对象既可以...

    Python增强赋值和共享引用注意事项小结

    概述 Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和...即增强赋值语句适用于任何支持隐式二元表达式的类型,比如“+”的多态:数字的相加和字符串的合并 数字加减 a = 1 a = a + 1 print(str

    JavaScript多态与封装实例分析

    本文实例讲述了JavaScript多态与封装。分享给大家供大家参考,具体如下: 1、静态语言类型和动态语言类型 编程语言按照数据类型可以分为静态语言类型和动态语言类型两大类。 1) 静态语言类型在编译时就已经确定变量...

    Java面向对象三大特性,即封装、继承、多态

    封装的必要性:在对象的外部为对象的属性赋值,可能存在非法数据的录入,存在不安全隐患。就目前的技术而言,并没有办法对属性的赋值加以控制。所以要实现属性的封装非常重要! 什么是封装? 概念:尽可能隐藏对象的...

    2维数组赋值(3).cpp

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...

    2维数组赋值(4).cpp

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...

    字符串比较、求串的长度、判断串是

    定义一个串类CMyString,建立适当的构造函数 字符串使用指针保存字符串 必须实现如下操作, 字符串比较、求串的长度、判断串是否为空、将串置空、 字符串赋值(包括两个字符串类复制...(学会使用继承和多态)可选*/

    吉林大学2016年c++期末考试题详解

    1. 在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,...

    C++编程思想习题

    7.2.3赋值和类型检查 7.3函数参数和返回值 7.3.1传递const值 7.3.2返回const值 7.3.3传递和返回地址 7.4类 7.4.1类里的const和enum 7.4.2编译期间类里的常量 7.4.3const对象和成员函数 7.4.4只读存储能力 7.5可变的...

Global site tag (gtag.js) - Google Analytics