我有3個使用模板的類,2個來自抽象基類。在我的main()
我正在應用多態概念,但從指向基類的指針派生類的對象沒有被初始化。我不確定問題出在我的代碼中。模板化多態不起作用
#include<iostream>
#include<conio.h>
using namespace std;
template<class T>
class polygon
{
protected:
T a,b;
public:
virtual T area()=0
}
template<class T>
class rectangle:public polygon
{
public:
rectangle(T c,T d)
{
a=c;
b=d;
}
T area()
{
return (a*b);
}
};
template<class T>
class triangle:public polygon
{
public:
rectangle(T c,T d)
{
a=c;
b=d;
}
T area()
{
return (.5*a*b);
}
};
template<class T>
class rectangle
{
public:
rectangle(T c,T d)
{
a=c;
b=d;
}
T area()
{
return (a*b);
}
};
void main (void)
{
polygon<float>*ppoly=new rectangle<float>(4,5);
cout<<ppoly->area();
getche();
}
你的代碼甚至不應該編譯。你能解決這個問題,並解釋你有什麼問題嗎? – juanchopanza
以及基本problm是從基類指針 它不初始化派生 類的對象,而模板 它有什麼用模板跟平常一樣運行,或者有語法 一些problm plzz忽略執行部分。這不是我現在關心的ri8 –
不知道,因爲你發佈的代碼甚至沒有編譯。所以你正在運行不同的代碼。我們應該如何知道你沒有顯示的代碼有什麼問題? – juanchopanza