
急急急!c++,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现
1,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现多态?2,如果父类和子类的同名成员函数参数格式相同,父类返回值类型作为父类的对象...
1,如果父类和子类的同名成员函数参数格式相同,返回值类型不同,父类的设置为虚函数,能否实现多态?
2,如果父类和子类的同名成员函数参数格式相同,父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用,父类的设置为虚函数,能否实现多态?
ps:题目中的“父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用”是神马意思? 展开
2,如果父类和子类的同名成员函数参数格式相同,父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用,父类的设置为虚函数,能否实现多态?
ps:题目中的“父类返回值类型作为父类的对象指针或引用,子类返回值类型作为子类的对象指针或引用”是神马意思? 展开
5个回答
展开全部
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);
}
答:如果返回值类型是基本数据类型,必须相同,不然编译不通过。
如果返回值类型是类类型,可以不相同。
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);
}
展开全部
10、C
11、D
12、C
13、A
14、D
15、B
16、A
11、D
12、C
13、A
14、D
15、B
16、A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,你这实现的不是多态,是因为c/c++程序忽略返回值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-11-25
展开全部
1。可以
2.不可以
就是这个意思,要对类理解,才能理解这句话。
2.不可以
就是这个意思,要对类理解,才能理解这句话。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实践是检验真理的唯一标准
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询