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

一个代码的异常求改正

2012-02-20 
一个代码的错误求改正!#include iostreamusing namespace std//////////形状类/////////////////////cl

一个代码的错误求改正!
#include <iostream>
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;

};

/////////主函数////////////////////////
void main()
{
CShape* pCircle = new CCircle(5);
pCircle->GetArea();
delete pCircle;


  CRect box(10,5);
box.GetArea();
}

编译时出现这个错误:error C2248: 'CCircle::CCircle' : cannot access private member declared in class 'CCircle'
  error C2248: 'CRect::CRect' : cannot access private member declared in class 'CRect'
  error C2248: 'CRect::~CRect' : cannot access private member declared in class 'CRec
怎么改正错误啊??????????





[解决办法]

C/C++ code
#include <iostream> using namespace std; //////////形状类///////////////////// class CShape { public: virtual double GetArea() = 0; }; //////////////圆类/////////////////////// const double g_Pi = 3.1415926; class CCircle : public CShape { public: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 {    public: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; }; /////////主函数//////////////////////// void main() { CCircle* pCircle = new CCircle(5); pCircle->GetArea(); delete pCircle; CRect box(10,5); box.GetArea(); } 

热点排行