小编Vij*_*M M的帖子

在OOP中需要多态性是什么?

我对OOP概念有愚蠢的问题,我们选择多态的原因是什么?

C++中的简单代码:

class Shape{
public:
virtual void draw(){ cout<<"Shape"<<endl;};
};

class Traingle: public Shape
{
public: void draw(){cout<<"Triangle"<<endl;}
};

class Rectangle: public Shape
{
public: void draw (){cout<<"Rectangle"<<endl;}
};

int main(){
Shape *ptr= new Traingle();
ptr->draw();
delete ptr;
return 7;
}
Run Code Online (Sandbox Code Playgroud)

这里ptr-> draw()函数会调用Triangle绘制,如果指向Rectangle然后是Rectangle draw,这是后期绑定.

创建Base类指针并将其指向不同类的必要性是什么?我们可以创建单独的类对象而不需要任何虚函数,并且可以调用whicever.喜欢

int main(){
    Traingle tObj; 
    tObj->draw();
    Rectangle rObj; 
    rObj->draw();
}
Run Code Online (Sandbox Code Playgroud)

基本上做同样的事情;

为什么多态基本上?为什么虚拟?

它有什么需要或者使用这个属性有什么区别?真实案例会有所帮助!!

c++ oop polymorphism virtual

5
推荐指数
1
解决办法
1320
查看次数

标签 统计

c++ ×1

oop ×1

polymorphism ×1

virtual ×1