您的位置:程序门 -> c/c++ -> c++ 语言



麻烦大家来帮我看看代码c++


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


麻烦大家来帮我看看代码c++[已结贴,结贴人:rainsloo1]
发表于:2007-01-05 11:50:12 楼主
#include   <iostream.h>


const   float   pi=3.14f;


void   main()
{
class   cricle;//我觉得是这里出了问题
cricle   x;
int   r;
cin> > r;
cout < < "s 's   price   is     " < <x.s_price(r) < <endl;
cout < < "c 's   price   is     " < <x.c_price(r) < <endl;
}

class   cricle  
{
private:
int   raidom;
public:
float   get_c(int   raidom)
{
return(raidom*pi*2);
}

float   get_s(int   raidom)
{
return(pi*raidom*raidom);
}

float   s_price(int   raidom)
{
float   result;
result=get_s(raidom)-get_s(raidom-3);
return(20*result);
}

float   c_price(int   raidom);
};

float   cricle::c_price(int   raidom)
{
float   result1;
result1=get_c(raidom);
return(35*result1);
}

编译的时候总是报错
d:\program   files\microsoft   visual   studio\myprojects\cricle\cricle.cpp(15)   :   error   c2228:   left   of   '.c_price '   must   have   class/struct/union   type

d:\program   files\microsoft   visual   studio\myprojects\cricle\cricle.cpp(14)   :   error   c2228:   left   of   '.s_price '   must   have   class/struct/union   type

d:\program   files\microsoft   visual   studio\myprojects\cricle\cricle.cpp(11)   :   error   c2065:   'x '   :   undeclared  

麻烦大家帮我看看。类是一定要写在main()的下方的
发表于:2007-01-05 11:55:191楼 得分:0
#include   <iostream.h>


const   float   pi=3.14f;

class   cricle
{
private:
int   raidom;
public:
float   get_c(int   raidom)
{
return(raidom*pi*2);
}

float   get_s(int   raidom)
{
return(pi*raidom*raidom);
}

float   s_price(int   raidom)
{
float   result;
result=get_s(raidom)-get_s(raidom-3);
return(20*result);
}

float   c_price(int   raidom);
};


void   main()
{
cricle   x;
int   r;
cin> > r;
cout < < "s 's   price   is   " < <x.s_price(r) < <endl;
cout < < "c 's   price   is   " < <x.c_price(r) < <endl;
}


float   cricle::c_price(int   raidom)
{
float   result1;
result1=get_c(raidom);
return(35*result1);
}
发表于:2007-01-05 12:05:432楼 得分:0
大哥  

类是一定要写在main()的下方的
发表于:2007-01-05 12:10:343楼 得分:0
why
发表于:2007-01-05 12:16:444楼 得分:10
主函数main要放到类的下面,不然它不会识别它下面定义的类或者变量或者是函数
发表于:2007-01-05 12:22:545楼 得分:10
和放在main函数上面没有什么必然的联系.
主要是   c++   是一种使用之前需要声明的语言.   在main中使用了该类,但之前没有声明,这会让编译器
摸不着头脑.
发表于:2007-01-05 12:26:596楼 得分:20
在编译器编译circle   x的时候,它必须知道x是多大的内存开销,所以如果没有类的结构声明,包括成员变量的定义,无法通过编译,如果一定要把声明放后面,只有使用指针.
circle   *x   =(circle*)operator   new(4);//这没有问题,因为指针总是四个字节
但是即使这样,在用到x的时候还是要类的原型声明的,如果全部写到后面就好比你定义一个全局变量而在前面未加声明就使用一样,编译器不知道那是什么东西.
发表于:2007-01-05 14:16:427楼 得分:0
#include   <iostream.h>


const   float   pi=3.14f;
class   cricle  
{
private:
int   raidom;

public:
float   get_c(   int   raidom)
{
return(raidom*pi*2);
}

float   get_s(   int   raidom)
{
        return(pi*raidom*raidom);
}

float   s_price(   int   raidom)
{
float   result;
result=get_s(raidom)-get_s(raidom-3);
return(20*result);
}
float   c_price(   int   raidom);
};

float   cricle::c_price(   int   raidom)
{
float   result1;
result1   =   get_c(raidom);
return(35*result1);
}
void   main()
{
// class   cricle;//我觉得是这里出了问题
cricle   x;
int   r;
cout   < <   "please   input   r: "   < <   endl;
cin   > >   r;

cout   < <   "s 's   price   is     "   < <   x.s_price(r)   < <   endl;
cout   < <   "c 's   price   is     "   < <   x.c_price(r)   < <   endl;
}


快速检索

最新资讯
热门点击