首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于容器方面的知识不是很懂,请问一下大家

2012-03-02 
关于容器方面的知识不是很懂,请教一下大家!#include vector#include iostream#include listusing na

关于容器方面的知识不是很懂,请教一下大家!
#include <vector>
#include <iostream>
#include <list>
using namespace std;
//////////形状类/////////////////////
class CShape
{
public:
virtual double GetArea() = 0;
};
//////////////圆类///////////////////////
const double g_Pi = 3.1415926;
class CCircle : public CShape
{
CCircle()
{

}

CCircle(double r) : m_dRadius(r)
{

}

~CCircle()
{

}

void SetRadius(double r)
{
m_dRadius = r;
}
public:
virtual double GetArea()
{
return m_dRadius* m_dRadius * g_Pi;
}

protected:
double m_dRadius;//半径
};
//////////////长方形类//////////////////////
class CRect:public CShape
{
CRect()
{


}
CRect(double a,double b)
{


}
~CRect()
{


}
void SetLength (double a,double b)
{
m_dLength1 = a;
m_dLength2 = b;

}

public:
virtual double GetArea()
{
return m_dLength1 * m_dLength2;

}
protected:
double m_dLength1; //边长
double m_dLength2;

};

/////////主函数////////////////////////

上面是我写的基类和子类的部分,大家帮我看看有什么错误的地方?
还有就是,请帮我写一个含有vector list typedef的主函数!
容器这部分不是很清楚,想通过这个例子来明白些!
谢谢大家了!!!!

[解决办法]

C/C++ code
#include <vector> #include <iostream> #include <list> using namespace std; //////////形状类///////////////////// class CShape { public: virtual double GetArea() = 0; }; //////////////圆类/////////////////////// const double g_Pi = 3.1415926; class CCircle : public CShape { public:        //你的程序将构造函数作为了私有的了,这样main中将无法创建这个类的实例!!!    CCircle()     {     }     CCircle(double r) : m_dRadius(r)     {     }     ~CCircle()     {     }     void SetRadius(double r)     {         m_dRadius = r;     }          virtual double GetArea()     {         return m_dRadius* m_dRadius * g_Pi;     } protected:     double m_dRadius; //半径 }; //////////////长方形类////////////////////// class CRect:public CShape {       public: CRect() { } CRect(double a,double b) { } ~CRect() { } void SetLength (double a,double b) { m_dLength1 = a; m_dLength2 = b; } virtual double GetArea() { return m_dLength1 * m_dLength2; } protected: double m_dLength1;          //边长 double m_dLength2; }; /////////主函数//////////////////////// int main(){    CCircle c(1.0);     CRect CR;    CR.SetLength(2.0,3.0);           vector <double> dvec;     dvec.push_back(c.GetArea());     cout << dvec[0]<<endl;            list <double> dlist;    dlist.push_back(c.GetArea());    dlist.push_back(CR.GetArea());        for(list <double>::iterator lit = dlist.begin(); lit!=dlist.end(); lit++)        cout<<*lit<<endl;    system("pause");} 

热点排行