定义一个普通函数void display(Asian *s[],int n) 此函数根据不同的对象s[i]对象调用不同的nation()函数,实现多态性,n为s数组元素个数,c*+代码实现
时间: 2023-12-14 19:36:56 浏览: 61
C++多态的使用方法代码,根据实际对象类型来执行适当的操作
假设Asian类有一个虚函数nation(),则可以实现多态性,c++代码如下:
```
void display(Asian *s[], int n) {
for (int i = 0; i < n; i++) {
s[i]->nation(); // 调用不同对象的nation()函数
}
}
```
假设有两个派生类Chinese和Japanese,它们都继承自Asian类,并且重写了nation()函数:
```
class Chinese : public Asian {
public:
void nation() override {
cout << "我是中国人" << endl;
}
};
class Japanese : public Asian {
public:
void nation() override {
cout << "私は日本人です" << endl;
}
};
```
那么在主程序中,可以定义一个Asian指针数组,将不同派生类的对象赋值给数组元素,然后调用display()函数:
```
int main() {
Chinese c;
Japanese j;
Asian *s[] = { &c, &j }; // 定义Asian指针数组,存放不同派生类的对象
display(s, 2); // 调用display函数,实现多态性
return 0;
}
```
阅读全文