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

关于重载运算符的问题

ku_klox 发布于 2010-08-30 22:04, 730 次点击
#include "stdafx.h"     //这里提示出错了
#include <iostream>
using namespace std;
class real
{
public:
    real(double value=0);
    real operator -()const;
    real operator ++();
private:
    double value;
};
real::real(double value)
{
    this->value=value;
}
real real::operator -()const
{
    return real(-value);
}
real real::operator ++()
{
    value++;
    return real(value);
}
void main()
{
    real r1(12.3);
    cout<<r1<<endl;
    cout<<++r1<<endl;
    cout<<r1<<endl;
    cout<<-r1<<endl;
}



我是用vc6.0的,应该怎样改正,请个位帮帮忙!
5 回复
#2
无名可用2010-08-30 22:17
我也是,本来程序好好的,加了个friend std::ostream & operator<< (std::ostream & os,Team & t);函数后就报错:"无法打开程序数据库文件",我用的是VS2008,郁闷
#3
无名可用2010-08-30 22:23
error C2471: 无法更新程序数据库 ,fatal error C1083: 无法打开程序数据库文件2010-04-14 11:21 P.M.error C2471: 无法更新程序数据库“c:\documents and settings\.......\debug\vc90.pdb”

fatal error C1083: 无法打开程序数据库文件:“c:\documents and settings\........\debug\vc90.pdb”: No such file or directory ....

解决方法:

修改一下设置,就可以解决C2471:
C\C++ | General | Debug Information format | C7 Compatible (/Z7)
C\C++ | Code Generation | Enable String Pooling | Yes (/GF)
Linker | General Debug Info | Yes (/DEBUG)

或者把在debug文件夹下的.pdb文件给删除了,f5一下就行了//我就把它给删了

刚才在网上搜了一下,不知道与你的错误是否相同,希望对你有帮助。。
#4
南国利剑2010-08-30 23:56
这样改过就可以了。
程序代码:
#include "stdafx.h"     //这里提示出错了
#include <iostream>
using namespace std;

class real
{
public:
    real(double value=0);
    void operator -();
    void operator ++();
    void OutPut();
private:
    double value;
};
void real::OutPut()
{
    cout<<value<<endl;
}
real::real(double value)
{
    this->value=value;
}

void real::operator -()
{
   // return real(-value);
    value=-value;
}

void real::operator ++()
{
    value++;
  //  return real(value);
}

void main()
{
    real r1(12.3);
    r1.OutPut();
    ++r1;
    r1.OutPut();
    -r1;
    r1.OutPut();

}

#5
南国利剑2010-08-30 23:56
不能将类的对象放在cout后直接输出。
#6
c4534135162011-05-30 11:37
#include "stdafx.h"

#include <iostream>
using namespace std;
class real                    //实数类
{
public:
    real(double value=0);
    real operator -()const;    //重载"-"负运算
    real operator ++();        //重载"++"自增运算
public:
    double value;
};
real::real(double value)
{
    this->value=value;
}
real real::operator -()const
{
    return real(-value);
}
real real::operator ++()
{
    value++;
    return real(value);
}
int main()
{
    real r1(12.3);
    cout<<r1.value<<endl;
    cout<<(++r1).value<<endl;
    cout<<r1.value<<endl;
    cout<<(-r1).value<<endl;
    return 0;
}

如果你是看的《C++》入门与实践,建议看光盘里面的源代码……
1