15201315716 发表于 2014-4-30 11:16:53

跪求修改:C++学private时候的程序编译时OK ,运行却错误 ,搞不定,求大神帮忙修改!

#include<iostream>
using namespace std;
class Rectangle
{
public:
Rectangle()
{
r=1;r1=1;
}
Rectangle(double r2,double r3)
{
r=r2;r1=r3;
}
    double Rectangle::getL()
{
return 2*(r+r1);
}
   
    double getS()
{
return r*r1;
}
double getr();
double getr1();
void setr(double r)
{
      if(r<0)
   r=0;
}
void setr1(double r1)
{
if(r1<0)
      r1=0;
}
private:
double r,r1;
};
int main()
{
Rectangle x1(2.5,2.5);
Rectangle x2(3.0,3.0);
Rectangle x3;                  
cout<<"边长为"<<x1.getr()<<"和"<<x1.getr1()<<"的周长为"<<x1.getL()<<endl;

return 0;
}

C++1.3类之初体验.obj - 0 error(s), 0 warning(s)

C++1.3类之初体验.obj : error LNK2001: unresolved external symbol "public: double __thiscall Rectangle::getr(void)" (?getr@Rectangle@@QAENXZ)


求大神帮忙求改下!!!感激不尽!





elvo 发表于 2014-4-30 11:23:59

getr()声明了,但没有定义,修改:#include<iostream>
using namespace std;
class Rectangle
{
public:
        Rectangle()
        {
                r=1;r1=1;
        }
        Rectangle(double r2,double r3)
        {
                r=r2;r1=r3;
        }
    double Rectangle::getL()
        {
                return 2*(r+r1);
        }
   
    double getS()
        {
                return r*r1;
        }
        double getr(){//你声明了,但没有定义它
                return r;
        }
        double getr1()//同上
        {
                return r1;
        }
        void setr(double r)
        {
      if(r<0)
                           r=0;
        }
        void setr1(double r1)
        {
                if(r1<0)
                      r1=0;
        }
private:
double r,r1;
};

int main()
{
Rectangle x1(2.5,2.5);
Rectangle x2(3.0,3.0);
Rectangle x3;                  
cout<<"边长为"<<x1.getr()<<"和"<<x1.getr1()<<"的周长为"<<x1.getL()<<endl;

return 0;
}

15201315716 发表于 2014-4-30 11:32:54

elvo 发表于 2014-4-30 11:23 static/image/common/back.gif
getr()声明了,但没有定义,修改:

无比感谢您啊!!!特别感谢
页: [1]
查看完整版本: 跪求修改:C++学private时候的程序编译时OK ,运行却错误 ,搞不定,求大神帮忙修改!