Polymorphism
在dec C中不支持字符串
我正在使用Dev C++ 5.9.2.
我有一个父类A
,类B,C,D,E
..... extends A
和类list
是我使用B,C,D.
的主要类< / p>
我不使用父级A
,因为我想重用构造函数A。
问题如下
class A
{
public:
virtual void show(){
printf("A");
}
private:
string tokenS;
};
class B :public A
{
public:
virtual void show(){
printf("B:");
// return 0;
}
}
class list
{
public:
A* getNode(){
return pta;
}
void setNode(B temp){
this->pta=&temp;
}
protected:
private:
A *pt1;
};
int main(){
list ls;
B b1;
ls.setNode(b1);
ls.getNode()->show();
}
如果我使用
string tokenS
结果: A如果我使用
char* tokenS
结果: B:
我不理解,如果我创建类并使用它,我也会遇到相同的错误
class Date
{
// code
};
class A
{
public:
virtual void show(){
printf("A");
}
private:
Date day;
};
class B :public A
{
public:
virtual void show(){
printf("B:");
// return 0;
}
}
答案 0 :(得分:0)
问题在这里:
<!DOCTYPE html>
<html>
<head>
<style>
.box{
width: 400px;
height: 400px;
background-color: red;
}
.inBox{
width: 200px;
height: 200px;
background-color: white;
margin-top: 100px;
}
</style>
<meta charset="utf-8">
</head>
<body>
<div class = "box">
<div class = "inBox">
</div>
</body>
</html>
这会将 void setNode(B temp){
this->pta=&temp;
}
设置为指向pta
,但是在函数结束时temp
不再存在。这是修复它并保留多态性的方法:
temp