VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1192|回复: 8

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

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-5 14:30:01 | 显示全部楼层 |阅读模式
#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()的下方的
回复

使用道具 举报

0

主题

14

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-5-20 11:15:01 | 显示全部楼层
#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);
}
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-5-21 07:30:01 | 显示全部楼层
大哥

类是一定要写在main()的下方的
回复

使用道具 举报

0

主题

63

帖子

43.00

积分

新手上路

Rank: 1

积分
43.00
发表于 2020-5-21 13:15:02 | 显示全部楼层
why
回复

使用道具 举报

0

主题

36

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-5-21 22:45:02 | 显示全部楼层
主函数main要放到类的下面,不然它不会识别它下面定义的类或者变量或者是函数
回复

使用道具 举报

1

主题

39

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-5-22 16:00:02 | 显示全部楼层
和放在main函数上面没有什么必然的联系.
主要是 c++ 是一种使用之前需要声明的语言. 在main中使用了该类,但之前没有声明,这会让编译器
摸不着头脑.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-22 22:00:02 | 显示全部楼层
在编译器编译Circle x的时候,它必须知道x是多大的内存开销,所以如果没有类的结构声明,包括成员变量的定义,无法通过编译,如果一定要把声明放后面,只有使用指针.
Circle *x =(Circle*)operator new(4);//这没有问题,因为指针总是四个字节
但是即使这样,在用到X的时候还是要类的原型声明的,如果全部写到后面就好比你定义一个全局变量而在前面未加声明就使用一样,编译器不知道那是什么东西.
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-31 01:00:01 | 显示全部楼层
#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;
}
回复

使用道具 举报

0

主题

1

帖子

0.00

积分

新手上路

Rank: 1

积分
0.00
发表于 2020-5-31 07:46:06 | 显示全部楼层
kan manual
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表