如何将多态(二)的概念应用于复杂编程场景中?
- 内容介绍
- 文章标签
- 相关推荐
本文共计560个文字,预计阅读时间需要3分钟。
多态的条件:1. 函数的覆写:三同(函数名、参数、返回值相同)2. 父类的指针或引用调用。
1. 不满足多态:看调用者的类型--调用这个类型的成员函数。
2.满足多态:看指向的指针类型--指向的类型的成员函数。
多态的条件:1.虚函数的重写:三同(函数名、参数、返回值)2.父类的指针或者引用去调用。
1.不满足多态看类型--看调用者的类型,调用这个类型的成员函数。
2.满足多态 -- 看指向的对象的类型,调用这个类型的成员函数。
下面的代码中不构成重写,是隐藏关系。
class Person {
public:
void Buyticket()
{
cout << "买票-全价" << endl;
}
};
class Student :public Person {
public:
//重写/覆盖
virtual void Buyticket()
{
cout << "买票-半价" << endl;
}
};
什么时候能够体现出隐藏关系,子类调用的时候才能体现出来。上面的代码中没有隐藏关系的体现。隐藏的时候调用父类可以指定作用域。
子类可以不写关键字:也可以构成重写。
本文共计560个文字,预计阅读时间需要3分钟。
多态的条件:1. 函数的覆写:三同(函数名、参数、返回值相同)2. 父类的指针或引用调用。
1. 不满足多态:看调用者的类型--调用这个类型的成员函数。
2.满足多态:看指向的指针类型--指向的类型的成员函数。
多态的条件:1.虚函数的重写:三同(函数名、参数、返回值)2.父类的指针或者引用去调用。
1.不满足多态看类型--看调用者的类型,调用这个类型的成员函数。
2.满足多态 -- 看指向的对象的类型,调用这个类型的成员函数。
下面的代码中不构成重写,是隐藏关系。
class Person {
public:
void Buyticket()
{
cout << "买票-全价" << endl;
}
};
class Student :public Person {
public:
//重写/覆盖
virtual void Buyticket()
{
cout << "买票-半价" << endl;
}
};
什么时候能够体现出隐藏关系,子类调用的时候才能体现出来。上面的代码中没有隐藏关系的体现。隐藏的时候调用父类可以指定作用域。
子类可以不写关键字:也可以构成重写。

