LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 996|回复: 10

Why ,I'm a new linuxsir!

[复制链接]
发表于 2004-10-9 10:33:08 | 显示全部楼层 |阅读模式
g++ -c CalcEng.c
CalcEng.c:3: error: `CalcEng::CalcEng()' and `CalcEng::CalcEng()' cannot be
   overloaded
CalcEng.c:7: error: `void CalcEng:perand(double)' and `void
   CalcEng:perand(double)' cannot be overloaded
CalcEng.c:17: error: end of file read inside definition
CalcEng.c:17: error: `void CalcEng:peration(char)' and `void
   CalcEng:peration(char)' cannot be overloaded
CalcEng.c:48: error: syntax error at end of input
发表于 2004-10-9 11:10:44 | 显示全部楼层
C++的源程序请用.cpp作为文件名后缀。
 楼主| 发表于 2004-10-9 13:54:05 | 显示全部楼层
我那本标准C++说的就是用C作为后缀名的~11
 楼主| 发表于 2004-10-9 13:59:59 | 显示全部楼层
[root@localhost cal]# g++ -c CalcEng.cpp
CalcEng.cpp:3: error: `CalcEng::CalcEng()' and `CalcEng::CalcEng()' cannot be
   overloaded
CalcEng.cpp:7: error: `void CalcEng:perand(double)' and `void
   CalcEng:perand(double)' cannot be overloaded
CalcEng.cpp:17: error: end of file read inside definition
CalcEng.cpp:17: error: `void CalcEng:peration(char)' and `void
   CalcEng:peration(char)' cannot be overloaded
CalcEng.cpp:48: error: syntax error at end of input


还是错误??????
 楼主| 发表于 2004-10-9 14:00:59 | 显示全部楼层
#include <math.h>
#include "CalcEng.h"
CalcEng::CalcEng(){ allclear();}
void CalcEng::allclear()
{ ans=arg=0.0;argcnt=1;op='=';}
void CalcEng:perand (double in)
{
    if (op=='=')
        ans=in;
    else
    {
        arg=in;
        argcnt=2;
    }
}
void CalcEng:peration(char nc)
{
    switch (nc)
    {
        case 'A':
        case 'a':allclear();return;
        case 'N':
        case 'n':
            if(argcnt==1)ans=-ans;
            else
                arg=-arg;
                return;
        case 'C':
        case 'c':
            if(argcnt==1)ans=0.0,op='=';
            else {arg=0.0;argcnt=1;}
            return;
        default:
                compute();
                op=nc;
}
void CalcEng::compute()
{
    if(argcnt==2)
    {  switch(op)
       {  case '+':ans+=arg;break;
          case '-':ans-=arg;break;
          case '*':ans*=arg;break;
          case '/':ans/=arg;break;
       }
       argcnt=1;
    }
}

这是原文件!
发表于 2004-10-9 15:03:34 | 显示全部楼层
你贴的程序不完整,不知道类的定义,不好分析。
 楼主| 发表于 2004-10-9 23:03:21 | 显示全部楼层
[root@localhost cal]# cat CalcEng.h
class CalcEng
{
    public:
        CalcEng();
        void operation (char c);
        void operand (double in);
        char opcode () const {return op;}
        double output () const
        { return (argcnt==2?(arg):ans;)
    private:
        void compute();
        void allclear();
        double ans,arg;
        char op;
        int argcnt;
};
发表于 2004-10-10 17:53:21 | 显示全部楼层
错误很多,你的程序在CalcEng.h中少了个大括号,一个分号的位置也错了。在CalcEng.cpp中也少了个大括号。先把这个错误给改了。
发表于 2004-10-10 17:53:25 | 显示全部楼层
建议你一个函数一个函数地添加代码,一下子写这么多,一编译出来的错误就是一大堆。
发表于 2004-10-10 17:56:08 | 显示全部楼层
发贴时就用code功能保持缩进,用法可见置顶的论坛索引。
在发贴时不要直接点提交回复,先预览回复,再选择禁止表情符号。这样贴出来的代码才好看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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