| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 905 人关注过本帖
标题:大家好,麻烦帮我看下下面三段程序哪里有问题?
取消只看楼主 加入收藏
baobao111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-8-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
大家好,麻烦帮我看下下面三段程序哪里有问题?
大家好,麻烦帮我看下下面三段程序哪里有问题?

namesp.h

#ifndef NAMESP_H_INCLUDED
#define NAMESP_H_INCLUDED
namespace pers
{
    const int LEN=40;
    struct person
    {
        char fname[LEN];
        char lname[LEN];
    };
    void getperson(person &);
    void showperson(const person &);
}

namespace debts
{
    using namespace pers;
    struct debt
    {
        person name;
        double amount;
    };
    void getdebt(debt &);
    void showdebt(const debt &);
    double sumdebts(const debt ar[],int n);
}

#endif // NAMESP_H_INCLUDED

-----------------------------------------------------------


namesp.cpp

#include<iostream>
#include"namesp.h"

namespace pers
{
    using std::cout;
    using std::cin;
    void getperson(person &rp)
    {
        cout<<"enter first name";
        cin>>rp.fname;
        cout<<"enter last name";
        cin>>rp.lname;
    }
    void showperson(const person &rp)
    {
        std:ccout<<rp.lname<<","<<rp.fname;
    }

}

namespace debts
{

    void getdebt(debt &rd)
    {
        getperson(rd.name);
        std::cout<<"enter debt:";
        std::cin>>rd.amount;
    }

    void showdebt(const debt &rd)
    {
        showperson(rd.name);
        std::cout<<":$"<<rd.amount<<std::endl;
    }

    double sumdebts(const debt ar[],int n)
    {
        double total=0;
        for(int i=0;i<n;i++)
        total +=ar[i].amount;
        return total;
    }
}

----------------------------------------------------------------

main.cpp

#include <iostream>
#include"namesp.h"

void other(void);
void another(void);

int main(void)
{
    using debts::debt;
    using debts::showdebt;
    debt golf={{"benny","goetsniff"},120.0};
    showdebt(golf);
    //other();
    //another();

    return 0;
}

void other(void)
{
    using std::cout;
    using std::endl;
    using namespace debts;
    person dg={"doodles","glister"};
    //howperson(dg);
    cout<<endl;
    //debt zippy[3];
    int i;

    for(i=0;i<3;i++);
        //getdebt(zippy[i]);
    for(i=0;i<3;i++);
        //showdebt(zippy[i]);
    //cout<<"Total debt:$"<<sumdebts(zippy,3)<<endl;

}

void another(void)
{
    using pers::person;

    person collector={"milo","rightshift"};
    //pers::showperson(collector);
    std::cout<<std::endl;
}



怎么通过不了编译。
提示main里的showdebt(golf);未定义 是什么原因啊?
搜索更多相关主题的帖子: amount person double void 
2012-08-29 15:57
baobao111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-8-29
收藏
得分:0 
回复 2楼 pangding
刚学到这,我是对着书抄的。  所以搞不清楚哪里出问题。

而且这不是类吧,这只是名称空间吧。

[ 本帖最后由 baobao111 于 2012-8-30 07:40 编辑 ]
2012-08-30 07:39
baobao111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-8-29
收藏
得分:0 
回复 4楼 pangding
那就是我的编译器的问题? 刚才我也试过了。把namesp.cpp的内容全部拷到main.cpp里编译没问题。 用的CodeBlocks10.05。怎么会这样呢。 问题在哪里呢?
2012-08-30 15:38
baobao111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-8-29
收藏
得分:0 
[local]1[/local]我好像传不了附件:

错误的红点停在:showDebt(golf);

提示的错误是:
||=== 9.10, Debug ===|
obj\Debug\main.o||In function `main':|
D:\C++ TEST\9.10\9.10\main.cpp|12|undefined reference to `debts::showDebt(debts::Debt const&)'|
||=== 已完成构建: 1 个错误, 0 个警告 ===|
2012-08-31 10:11
baobao111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-8-29
收藏
得分:0 
回复 7楼 pangding
我好像传不了附件:

错误的红点停在:showDebt(golf);

提示的错误是:
||=== 9.10, Debug ===|
obj\Debug\main.o||In function `main':|
D:\C++ TEST\9.10\9.10\main.cpp|12|undefined reference to `debts::showDebt(debts::Debt const&)'|
||=== 已完成构建: 1 个错误, 0 个警告 ===|
2012-08-31 10:12
baobao111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-8-29
收藏
得分:0 
回复 10楼 pangding
是的,就像你说的。只有main.o
2012-09-01 06:29
快速回复:大家好,麻烦帮我看下下面三段程序哪里有问题?
数据加载中...
 
   



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

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