编程论坛
注册
登录
编程论坛
→
C++教室
请教c++的高手们一个简单的问题
zylss007
发布于 2007-12-05 15:00, 751 次点击
我刚开始学习c++,问题简单请原谅。
我定义了一个类Money保存在Money.h中
可在Money.cpp中调用他,无法使用Money.h
调用时出现错误:Money is not a class or a namespace!
应该怎么解决
4 回复
#2
lonmaor
2007-12-05 15:09
没有正确包含money.h文件。
如果money.h和money.cpp处于同一目录下,请使用
#include "money.h"
来包含头文件。Money首字母不要大写。
#3
zylss007
2007-12-05 15:56
谢谢了
还有一个问题
定义一个类保存为1.h
#ifdef MONEY_H
#define MONEY_H
class Money
{
public:
Money();
Money(long doller,int cent);
Money(double amout);
void assignMoney(long doller,int cent);
void assignMoney(double amount);
void addTo(Money cash);
void muitiplyBy(double num);
double quot(Money cash);
bool lessthan(Money cash),equalto(Money cash);
void display();
private:
long dollerandcent;
long round(double num);
};
#endif
能否被2.h引用
#include <iostream>
using namespace std;
#include "1.h"
void Money::Money()
{
dollerandcent=0;
}
void Money::Money(long doller,int cent)
{dollerandcent=doller*100+cent;
}
void Money::Money(double amount)
{ dollerandcent=round(amount*100);
}
void Money:: assignMoney(long doller,int cent)
{dollerandcent=doller*100+cent;
}
void Money::assignMoney(double amount)
{ dollerandcent=round(amount*100);
}
void Money::addTo(Money cash)
{dollerandcent=dollerandcent+cash.dollerandcent;
}
void Money::muitiplyBy(double num)
{dollerandcent=round(amount*100);
}
double Money::quot(Money cash){
return static_cast<double>(dollerandcent)/cash.dollerandcent;
}
bool Money::lessthan(Money cash)
{bool ret;
if(dollerandcent<cash.dollerandcent)
ret=true;
else
ret=false;
return ret;
}
bool Money::equalto(Money cash)
{bool ret;
if(dollerandcent==cash.dollerandcent)
ret=true;
else
ret=false;
return ret;
}
void Money::display()
{int cent;
cout<<dollerandcent/100<<".";
cent=dollerandcent%100;
if (cent<10)
cout<<"0";
cout<<cent;
}
long Money::round(double num)
{long ron;
if (num>=0)
ron=static_cast<long>(num+0.5);
else
ron=static_cast<long>(num-0.5);
return ron;
}
也就是把函数声明和函数定义放在两个文件中。可以吗
#4
rainyee
2007-12-05 23:22
最好将函数声明和函数体写在一起
也可以分开写,但是对于inline函数,必须写在一起
#5
leeco
2007-12-06 12:45
回复 3# 的帖子
#ifdef MONEY_H
#define MONEY_H
明显有错误
1