急急急!c++,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现

1,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现多态?2,如果父类和子类的同名成员函数参数格式相同,父类返回值类型作为父类的对象... 1,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现多态?
2,如果父类和子类的同名成员函数参数格式相同,父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用,父类的设置为虚函数,能否实现多态?
ps:题目中的“父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用”是神马意思?
展开
 我来答
百度网友1cbdd57f4
2010-11-25 · TA获得超过139个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:100万
展开全部
1,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现多态?
答:如果返回值类型是基本数据类型,必须相同,不然编译不通过。
如果返回值类型是类类型,可以不相同。

2,如果父类和子类的同名成员函数参数格式相同,父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用,父类的设置为虚函数,能否实现多态?
答:可以实现多态,具体见我提供的程序。

ps:题目中的“父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用”是神马意思?
答:virtual B* print(A* a) 中的 B* 就是子类返回值类型。

#include <iostream>
using namespace std;

class A {
private:
int numA;
public:
A(int n) :
numA(n) {
}
virtual A* print(A* a) {
cout << 'A' << endl;
return a;
}
};

class B: public A {
private:
int numB;
public:
B(int n) :
A(n), numB(n) {
}
public:
virtual B* print(A* a) {
cout << 'B' << endl;
return (B*) a;
}
};

int main() {
A * a = new B(1000);
a->print(a);
A a1 = B(1000);
a1.print(a);

}
rkvvl20
2010-11-25 · TA获得超过389个赞
知道答主
回答量:211
采纳率:0%
帮助的人:119万
展开全部
10、C
11、D
12、C
13、A
14、D
15、B
16、A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ecc7578
2010-11-25 · TA获得超过806个赞
知道小有建树答主
回答量:715
采纳率:0%
帮助的人:714万
展开全部
1,你这实现的不是多态,是因为c/c++程序忽略返回值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-11-25
展开全部
1。可以
2.不可以
就是这个意思,要对类理解,才能理解这句话。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zqqmt_forever
2010-11-25 · 超过50用户采纳过TA的回答
知道答主
回答量:168
采纳率:0%
帮助的人:142万
展开全部
实践是检验真理的唯一标准
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式