注册 登录
编程论坛 C++教室

求圆的周长和面积

z826926484 发布于 2012-03-05 16:46, 2600 次点击
#include<iostream>
using namespace std;
class Circle
{
private:  
    float r;
    float f;
    float l;
public:
    void outf();
    void outl();
};
void Circle::outf(void)
{
    f=2*3.14*r;
    cout<<"f is:"<<f<<endl;
}
void Circle::outl(void)
{
    l=3.14*r*r;
    cout<<"l is:"<<l<<endl;
}
void main()
{
    double f,l,r;
    Circle c;
    cin>>r;
    c.outf();
    c.outl();
}哪里有错误啊,帮忙改下,谢谢了
5 回复
#2
wtujoxk2012-03-05 20:46
程序代码:
#include<iostream>
using namespace std;

class Circle
{
public:
    void outf();
    void outl();
    void get(float i) {r = i;}
private:
    float r;
    float f;
    float l;
};

void Circle::outf()
{
    f=2*3.14*r;
    cout<<"f is:"<<f<<endl;
}

void Circle::outl()
{
    l=3.14*r*r;
    cout<<"l is:"<<l<<endl;
}

int main()
{
    double r;
    Circle c;
    cin>>r;
    c.get(r);
    c.outf();
    c.outl();

    return 0;
}
#3
徐宗保2012-03-05 20:49
#include<iostream>
 using namespace std;
 
class Circle
 {
 public:
     void outf();
     void outl();
     void get(float i) {r = i;}
 private:
    float r;
     float f;
     float l;
 };
 
void Circle::outf()
 {
     f=2*3.14*r;
     cout<<"f is:"<<f<<endl;
 }
 
void Circle::outl()
 {
     l=3.14*r*r;
     cout<<"l is:"<<l<<endl;
 }
 
int main()
 {
     double r;
     Circle c;
     cin>>r;
     c.get(r);
     c.outf();
     c.outl();
 
    return 0;
 }
#4
庄飞2012-03-07 21:22
   请教一下2楼,我试过你的程序,运行正确。我自己也编过,我的唯独没有void get(float i) {r = i;}这个函数,因为我也和发帖的楼主一样,觉得已经用了cin>>r就可以了,但思路上觉得对,运行结果不对。你可以解释一下为什么光用cin>>r不行呢?
#5
Wu_Roc2012-03-09 20:56
私有变量不能直接赋值~~~2楼是通过自己类的函数进行赋值
#6
y14901018342012-03-09 22:23
#include<iostream>
using namespace std;
class Circle
{
private:  
    float r;
    float f;
    float l;
public:
    Circle(float a)
    {
        r=a;
    }
    void outf();
    void outl();
    ~Circle( ){}
};
void Circle::outf(void)
{
    f=2*3.14*r;
    cout<<"f is:"<<f<<endl;
}
void Circle::outl(void)
{
    l=3.14*r*r;
    cout<<"l is:"<<l<<endl;
}
void main()
{
    double f,l,r;
    cin>>r;
    Circle c(r);
    c.outf();
    c.outl();
}
你那样不是对私有变量赋值,只是对一个float型变量r进行了赋值。如果要对私有变量进行赋值,你可以通过调用构造函数。还有就是私有变量只能被类内函数调用。
1