| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:请教c++的高手们一个简单的问题
只看楼主 加入收藏
zylss007
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-12-5
收藏
 问题点数:0 回复次数:4 
请教c++的高手们一个简单的问题
我刚开始学习c++,问题简单请原谅。
我定义了一个类Money保存在Money.h中
可在Money.cpp中调用他,无法使用Money.h
调用时出现错误:Money is not a class or a namespace!
应该怎么解决
搜索更多相关主题的帖子: Money 定义 cpp 
2007-12-05 15:00
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
没有正确包含money.h文件。
如果money.h和money.cpp处于同一目录下,请使用
#include "money.h"
来包含头文件。Money首字母不要大写。
2007-12-05 15:09
zylss007
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-12-5
收藏
得分:0 
谢谢了
还有一个问题
定义一个类保存为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;
}
也就是把函数声明和函数定义放在两个文件中。可以吗
2007-12-05 15:56
rainyee
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-20
收藏
得分:0 
最好将函数声明和函数体写在一起
也可以分开写,但是对于inline函数,必须写在一起

當你在 穿山越嶺的另一邊 我在孤獨的路上 沒有盡頭......
2007-12-05 23:22
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
回复 3# 的帖子
#ifdef MONEY_H
#define MONEY_H

明显有错误
2007-12-06 12:45
快速回复:请教c++的高手们一个简单的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011896 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved