cpp的面向对象,有类似java多态的概念吗?

kojavaee Cocos2d-x基础-C++... 最后由 孙宜岩 于2014年08月14日回复

  • 3 回答
  • 1.2k 浏览

#include "Person.h"

void Person::sayHello() {

    printf("hello person cppn");

}

---------------------------------

#include

#include "Person.h"

class Man:public Person{

public:

    void sayHello();

};

----------------------------------------

#include "Man.h"

void Man::sayHello() {

    printf("hell man cppn");

}

-------------------------------------------------------------------------------

#include

#include "Man.h"


int main(int argc, const char * argv[])

{

    Man *m = new Man();

    m->sayHello(); //输出"hello man cpp"

    delete (m);

    

    Person *p = new Man();

    p->sayHello(); //期望输出"hello man cpp", 却输出"hello person cpp"

    delete (p);

    

    return 0;

}


------------------------------------------

如何才能使p->sayHello();输出 hello man cpp?

  • daguye 2014年07月09日 回答 #1楼
  • 这个跟继承有关。如果你要多态的话。试试写个参数不一样的sayhello。调用的时候调用不同参数。应该就能得到你想要的结果


  • 0 评论
  • kojavaee 2014年07月10日 回答 #2楼
  • 我是从mac pro xcode copy的代码,为什么空格成这样的� �
  • 0 评论
  • 孙宜岩 2014年08月14日 回答 #3楼
  • 有java多态的概念的,你看看虚函数纯虚函数一节的内容,在后面的课程也会讲到
  • 1 评论