谁帮我看一下这个程序哪出问题了 变异老有一个错误 我c++菜鸟 忘不吝赐教
#include<iostream.h>classfather{public:father(){cout<<"调用父类构造函数"<<endl;}voidrun()cons...
#include <iostream.h>
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void run()const{cout<<"父亲可以跑万米"<<endl;}
};
class son():public father
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"endl;}
};
int main()
{
father *p=new son;
p->run();
delete p;
return 0;
}; 展开
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void run()const{cout<<"父亲可以跑万米"<<endl;}
};
class son():public father
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"endl;}
};
int main()
{
father *p=new son;
p->run();
delete p;
return 0;
}; 展开
5个回答
展开全部
#include <iostream.h>
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void virtual run()const{cout<<"父亲可以跑万米"<<endl;} //用virtual实现多态
};
class son:public father //去()
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"<<endl;} //少<<
}; //中文分号
int main()
{
father *p=new son;
p->run();
delete p;
return 0;
};
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void virtual run()const{cout<<"父亲可以跑万米"<<endl;} //用virtual实现多态
};
class son:public father //去()
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"<<endl;} //少<<
}; //中文分号
int main()
{
father *p=new son;
p->run();
delete p;
return 0;
};
展开全部
#include <iostream.h>
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void run()const{cout<<"父亲可以跑万米"<<endl;}
};
class son:public father
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"<<endl;}
};
int main(int argc, char* argv[])
{
father *p=new son;
p->run();
delete p;
return 0;
}
class father
{
public:
father()
{
cout<<"调用父类构造函数"<<endl;
}
void run()const{cout<<"父亲可以跑万米"<<endl;}
};
class son:public father
{
public:
son()
{
cout<<"调用子类的构造函数"<<endl;
}
void run()const{cout<<"儿子可以跑千米"<<endl;}
};
int main(int argc, char* argv[])
{
father *p=new son;
p->run();
delete p;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然是继承,就要有相关的关键字。
void virtual run()const{cout<<"父亲可以跑万米"<<endl;} //用virtual实现多态
void virtual run()const{cout<<"父亲可以跑万米"<<endl;} //用virtual实现多态
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
father类和 son类中的run函数前面都加上virtual关键字,就是这样:
virtual void run()const
virtual void run()const
追问
貌似虚函数只能在基类中被声明吧
追答
这个理解绝对是错误的,虚函数不知在基类中可以声明,你的这个程序中两个run函数都应该加上virtual的,但是因为第二个run编译器会根据前面的father的run是虚函数,判断son里的run是不是也是虚函数(看返回值类型,函数名,参数类型是否完全相同),所以可以不在son类中的run加virtual。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-16
展开全部
编译错误,应该是缺少 std的标识,在 #include <iostream.h> 后加上 using namespace std;
追问
好像我记得用就不用加using namespece std了 用才要加的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询