我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

«1 2 34» Pages: ( 2/4 total )
本页主题: 50浮云悬赏求助C++ 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ commit /kə'mit/ vt. 犯(错误,罪行等),把…付给,提交 ]


我先定义了struct  sales,然后才声明那三个函数的,为什么会有错
顶端 Posted: 2007-10-07 11:30 | [15 楼]
dongyu





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: 起早不摸黑
发贴: 168
威望: 0
浮云: 1115
在线等级:
注册时间: 2006-10-13
最后登陆: 2008-06-29

5come5帮你背单词 [ trial /'traiəl/ n. 审判,审讯,试验,试用 ]


我的头文件为:H1.h
namespace SALES
{
    const int QUARTERS=4;
    struct Sales
    {
        double sales[QUARTERS];
        double average;
        double max;
        double min;
        void setSales(Sales &s,const double ar[],int n);
    void setSales(Sales &s);
    void showSales(const Sales &s);
       
    };
   
}
cpp文件为main.cpp:
#include<iostream>
#include"H1.H"
using namespace SALES;
void  setSales(Sales &s,const double ar[],int n)
{
    if(n<=4)
    {
        for(int i=0;i<n;i++)
            s.sales=ar;
        for(i=n;i<4;i++)
            s.sales=0;
    }
    if(n>4)
    {
        for(int i=0;i<4;i++)
          s.sales=ar;
    }
    double ave=0;
    for(int i=0;i<4;i++)
    {
        ave+=s.sales;
    }
    s.average=ave/4;
    s.max=s.sales[0];s.min=s.sales[0];
    for(i=0;i<4;i++)
    {
        if(s.sales>s.max)
            s.max=s.sales;
        if(s.sales<s.min)
            s.min=s.sales;
    }

}
void setSales(Sales &s)
{
    std::cout<<"Enter 4 numbers:";
    for(int i=0;i<4;i++)
        std::cin>>s.sales;
        double ave=0;
    for(i=0;i<4;i++)
    {
        ave+=s.sales;
    }
    s.average=ave/4;
    s.max=s.sales[0];s.min=s.sales[0];
    for(i=0;i<4;i++)
    {
        if(s.sales>s.max)
            s.max=s.sales;
        if(s.sales<s.min)
            s.min=s.sales;
    }
}
void showSales(const Sales &s)
{
    for(int i=0;i<4;i++)
        std::cout<<s.sales<<std::endl;
    std::cout<<"average="<<s.average<<std::endl;
    std::cout<<"max="<<s.max<<std::endl;
    std::cout<<"min="<<s.min<<std::endl;
}
int main()
{
    Sales a[2];
    double b[4]={1.1,1.2,1.3,1.0};
    setSales(a[0],b,4);
    setSales(a[1]);
    showSales(a[0]);
    showSales(a[1]);
    return 0;

}
运行结果为:
顶端 Posted: 2007-10-07 11:31 | [16 楼]
dongyu





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: 起早不摸黑
发贴: 168
威望: 0
浮云: 1115
在线等级:
注册时间: 2006-10-13
最后登陆: 2008-06-29

5come5帮你背单词 [ manner /'mænə/ n. 方式,方法,态度,举止,(pl.)礼貌,规矩 ]


这是我的运行结果
远程图片:result1.jpg
顶端 Posted: 2007-10-07 11:33 | [17 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ conversion /kən'və:ən/ n. 转化,转换,转变 ]


Quote:
引用第17楼dongyu于2007-10-07 11:33发表的  :
这是我的运行结果


奇怪。。。原来我不是已经声明了结构才声明函数的,为什么不行呢


[ 此贴被xuer在2007-10-07 11:42重新编辑 ]
顶端 Posted: 2007-10-07 11:35 | [18 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ despise /dis'paiz/ vt. 鄙视,藐视 ]


为什么要把函数声明放在结构里?
顶端 Posted: 2007-10-07 11:43 | [19 楼]
西西哈哈



性别: 帅哥 状态: 该用户目前不在线
头衔: 标题党党委书记
等级: 成就辉煌
家族: YD一族
发贴: 10673
威望: 0
浮云: 1128
在线等级:
注册时间: 2006-05-29
最后登陆: 2014-03-11

5come5帮你背单词 [ league /li:g/ n. 同盟,联盟,协会,社团 ]


Quote:
引用第19楼xuer于2007-10-07 11:43发表的  :
为什么要把函数声明放在结构里?

你不是在学C++吗??看下类的操作函数,哪个不是放在里面的
顶端 Posted: 2007-10-07 11:48 | [20 楼]
dongyu





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: 起早不摸黑
发贴: 168
威望: 0
浮云: 1115
在线等级:
注册时间: 2006-10-13
最后登陆: 2008-06-29

5come5帮你背单词 [ swear /sw/ə/ vi. 宣誓,发誓,诅咒,咒骂 ]


Quote:
引用第18楼xuer于2007-10-07 11:35发表的  :


奇怪。。。原来我不是已经声明了结构才声明函数的,为什么不行呢

不是在类里面定义的函数好像是不能进行重载的。包含在struct里面的函数就相当于是sale
类里的公有成员函数。。
顶端 Posted: 2007-10-07 11:48 | [21 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ kneel /ni:l/ vi. 跪(下) ]


Quote:
引用第21楼dongyu于2007-10-07 11:48发表的  :

不是在类里面定义的函数好像是不能进行重载的。包含在struct里面的函数就相当于是sale
类里的公有成员函数。。

我刚才把三个文件的内容放在一个文件里就可以了,但是我还是用三个文件的时候主函数那个文件报错
C:\Program Files\Microsoft Visual Studio\Common\练习\新建文件夹 (17)\Cpp5.cpp(8) : error C2065: 'setSales' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\Common\练习\新建文件夹 (17)\Cpp5.cpp(10) : error C2065: 'showSales' : undeclared identifier
Error executing cl.exe.
顶端 Posted: 2007-10-07 11:54 | [22 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ greeting /'gri:tiŋ/ n. 问候,招呼 ]


我将头文件改为
namespace SALES
{
    const int QUARTERS=4;
    struct Sales
    {
        double sales[QUARTERS];
        double average;
        double max;
        double min;
       void setSales(Sales &s,const double ar[],int n);
                          void setSales(Sales &s);
           void showSales(const Sales &s);
    };
     
}
其它都没变啊
顶端 Posted: 2007-10-07 11:57 | [23 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ implore /im'plo:/ vt. 乞求,恳求,哀求 ]


我把函数定义放在另一个文件里,这样不行?出错提示好像就是函数没定义?
顶端 Posted: 2007-10-07 12:10 | [24 楼]
dongyu





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: 起早不摸黑
发贴: 168
威望: 0
浮云: 1115
在线等级:
注册时间: 2006-10-13
最后登陆: 2008-06-29

5come5帮你背单词 [ mother /'mΛðə/ n. 妈妈,母亲 ]


Quote:
引用第24楼xuer于2007-10-07 12:10发表的  :
我把函数定义放在另一个文件里,这样不行?出错提示好像就是函数没定义?

恩,你只要把main函数和成员函数放在一个文件里面编译就行了。你把main定义放在另一个文件里
的话,你在main 函数里面就必须用对象sale 去调用成员函数!
顶端 Posted: 2007-10-07 12:14 | [25 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ volunteer /volən'tiə/ n. 自(志)愿者 ]


Quote:
引用第25楼dongyu于2007-10-07 12:14发表的  :

恩,你只要把main函数和成员函数放在一个文件里面编译就行了。你把main定义放在另一个文件里
的话,你在main 函数里面就必须用对象sale 去调用成员函数!

怎么调用呐,试了下不晓得怎么调用
顶端 Posted: 2007-10-07 12:20 | [26 楼]
dongyu





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: 起早不摸黑
发贴: 168
威望: 0
浮云: 1115
在线等级:
注册时间: 2006-10-13
最后登陆: 2008-06-29

5come5帮你背单词 [ bake /beik/ vt. 烘烤,烧硬,焙干 ]


要改的话就必须该你这个名字空间的用法了!
eg:
namespace ZZ
{
  class M;
  void M::getc();
}
class M
{
  int m;
public:
  void getc() {return m;}
}
顶端 Posted: 2007-10-07 12:34 | [27 楼]
xuer



誓言守护者 执着之戒 真诚之戒 勇敢之戒
性别: 帅哥 状态: 该用户目前不在线
头衔: 学而时习之
等级: 人见人爱
家族: 起早不摸黑
发贴: 3393
威望: 0
浮云: 0
在线等级:
注册时间: 2006-11-19
最后登陆: 2018-08-13

5come5帮你背单词 [ handle /'hændl/ n. 把手,柄;vt. 处理,对待 ]


Quote:
引用第27楼dongyu于2007-10-07 12:34发表的  :
要改的话就必须该你这个名字空间的用法了!
eg:
namespace ZZ
{
  class M;
.......

额。。。还没学到这里。。。不过谢了哈
顶端 Posted: 2007-10-07 12:37 | [28 楼]
perfect_刘



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 960
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-11-20
最后登陆: 2009-05-08

5come5帮你背单词 [ endurance /in'djuərəns/ n. 忍耐(力),持久性 ]


呵呵
你的浮云送出去没有哇???
顶端 Posted: 2007-10-07 12:38 | [29 楼]
«1 2 34» Pages: ( 2/4 total )
我来我网·5come5 Forum » 程序员之家

Total 0.013536(s) query 5, Time now is:11-22 14:36, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号