6-7 鸭子也是鸟分数 10

按要求完成下面的程序:

1、定义一个Bird类,包含一个void类型的无参的speak方法,输出“Jiu-Jiu-Jiu”。

2、定义一个Duck类,公有继承自Bird类,其成员包括:

(1)私有string类型的成员name;

(2)带参数的构造函数,用指定形参对私有数据成员进行初始化;

(3)公有的成员函数printName,无形参,void类型,功能是输出成员name的值,具体输出格式参见main函数和样例输出。

裁判测试程序样例:

#include <iostream>
#include <string>
using namespace std;

/* 请在这里填写答案 */

int main()
{
    Bird b;
    b.speak();
    Duck d("Donald"); //定义派生类对象
    d.printName();    //派生类对象使用本类成员函数
    d.speak();    //派生类对象使用基类成员函数
    return 0;
}

输入样例:

无输入

输出样例:

Jiu-Jiu-Jiu
Dird Name:Donald
Jiu-Jiu-Jiu

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

要输入的代码段:

继承类,也就是子类可以调用父类函数,相信你一看就明白

class Bird{
	public:
		void speak()
		{
			cout<<"Jiu-Jiu-Jiu"<<endl;
		 } 
};
class Duck:public Bird{
	private:
		string name;
		public:
			Duck(string name)
			{
				this->name=name;
			}
			void printName()
			{
				cout<<"Dird Name:"<<name<<endl;
			}
};

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "鸭子类型" 是一种编程概念,在 TypeScript 中也适用。它指的是一种类型的判定方式,是看它是否具有某些必要的属性或方法,而不是看它是否属于某个具体的类。 举个例子,假设我们有一个类型 `Duck`,它有一个方法 `quack()`。如果某个对象有一个方法 `quack()`,我们就可以认为它是一只鸭子,即使它并不是 `Duck` 类型的实例。 在 TypeScript 中,我们可以使用鸭子类型来实现非常灵活的类型检查,尤其是在使用第三方库或模块时,往往无法了解它们的所有类型信息。使用鸭子类型,我们可以只关注它们是否满足我们需要的接口即可。 ### 回答2: 鸭子类型是一种类型检测的方法,常见于动态编程语言如TypeScript中。它基于"当走起来像鸭子、叫起来像鸭子,那就是鸭子"的原则。 在鸭子类型中,对象的类型并不重要,而是关注对象是否具备特定的方法或属性。如果一个对象具有与目标类型所需的方法和属性相匹配,那么它就被视为具有该目标类型。 这种类型检测方法更加灵活,它不要求对象从特定类继承,而是关注对象的行为。因此,它允许我们在不创建类层级关系的情况下,共享方法和属性。 举个例子,有一个函数需要接受一个拥有`walk`方法的对象作为参数。如果我们使用鸭子类型,我们不需要验证该对象是否属于某个特定类,只需要验证它是否具有`walk`方法。只要对象具备`walk`方法,我们就可以将其传递给该函数,无需关心对象的类别。 总而言之,鸭子类型的类型检测方法聚焦于对象的行为,而不是它的类别或继承关系。这种方式使得代码更加灵活、可复用,同时也鼓励了面向接口编程的思想。 ### 回答3: 在TS中,鸭子类型是一种动态类型的概念。它是一种基于对象的类型检测方式,与传统的基于类的继承方式不同。鸭子类型的核心思想是:只要对象具备某些特定的方法或属性,它就可以被当作该类型的实例。 鸭子类型来源于一句格言:“如果一只看起来像鸭子、走路像鸭子、游泳像鸭子,那么它就是一只鸭子。”在编程中,这种思想被用于类型检测。也就是说,我们不需要显式地指定一个变量的类型,只需要检查它是否具备我们需要的方法或属性。 例如,我们定义了一个函数,需要传入一个具备`quack`方法的对象,用于发出声音。这个对象可以是一个鸭子的实例,也可以是一个看起来像鸭子的对象。在鸭子类型中,我们不必关心这个对象是否来自特定的类,只需要确保它具备`quack`方法即可。 以这种方式进行类型检测的好处是,我们可以更灵活地使用对象,不受限于特定的类或继承关系。这使得TS具备了动态语言的一些灵活性,同时又具备了类型检测的安全性。 需要注意的是,鸭子类型也有一些缺点。首先,它只能检测对象的方法和属性,而不关心类型的其他特性。其次,如果一个函数的参数是通过鸭子类型来检测的,那么文档中对参数的类型要求将不再明确,可能导致使用者的困惑。 总而言之,鸭子类型是一种基于对象的动态类型检测方式,在TS中允许我们通过检查对象的方法和属性来判断其是否为某一类型的实例。它使得我们可以更灵活地使用对象,但也需要在一定程度上权衡灵活性和明确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值