标题:什么叫做在重载函数在publication中找不到?
只看楼主
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
结帖率:100%
已结贴  问题点数:20 回复次数:10 
什么叫做在重载函数在publication中找不到?
#include<iostream.h>
#include<string.h>

class Publication
{
public:
    Pubication( char* name , float price , char* date , char choose );
    bool borrowornot();
    void nature();
    void print();
private:
    char* name;
    float price;
    char* date;
    char choose;
};

Publication::Publication( char* name , float price , char* date , char choose )
{
    this->name = new char [strlen(name)+1];
    strcpy( this->name , name );
    this->price = price;
    this->date = new char[strlen(date)+1];
    strcpy( this->date = date );
    this->choose = choose;
}

bool Publication::borrowornot( char choose )
{
    if( choose == 'Y' )
        return 1;
    else
        return 0;
}

void Publication::print()
{
    cout<<"the book's name is "<< name <<endl;
    cout<<"the book's price is "<< price <<endl;
    cout<<"the book's date of publication is "<< date <<endl;
    if( Publication::borrowornot( char choose ) )
    {
        cout<<"the book has been borrowed , you can't rent it! "<<endl;
    }
    else
    {
        cout<<"the book is available , you can rent it! "<<endl;
    }
}

void main()
{
    char name[100];
    char date[10];
    float price;
    char choose1;
    char choose2;
    cout<<" do you want to get more information?"<<endl;
    cin>>choose1;
    while( choose1=='Y' )
    {
        cout<<"what is the name of the book?"<<endl;
        cin>>name;
        cout<<"when did it public?"<<endl;
        cin>>date;
        cout<<"how much is it?"<<endl;
        cin>>price;
        cout<<"whether the book has been borrowed?(Y/N)"<<endl;
        cin>>choose2;
        Publication book( name , price , date , choose2 );

        book.print();
        cout<<" do you want to get more information?"<<endl;
        cin>>choose1;
    }
}
搜索更多相关主题的帖子: void private include public 
2013-03-29 21:52
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
得分:3 
函数重载同样的函数名,但是有不同的输入参数,输出参数好像也可以不同, 为了解决功能相似但是输入参数不同的问题。
我是在JAVA 里学的 C++ 总的来所不会啊,看着有点头疼——

[ 本帖最后由 yctchxf 于 2013-3-29 22:06 编辑 ]
2013-03-29 21:57
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
得分:0 
回复 2楼 yctchxf
我不晓得该怎么改额。。。
2013-03-29 22:00
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:3 
function overloading这是原意,就是让一个函数做很多类似的工作

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-03-29 22:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:3 
bool borrowornot();
bool Publication::borrowornot( char choose )

授人以渔,不授人以鱼。
2013-03-29 22:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
顺便说一句,如果你不知道这个问题怎么回事,说明这个代码不是你自己写的,这样学习是不行的。

授人以渔,不授人以鱼。
2013-03-29 22:18
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
得分:0 
回复 6楼 TonyDeng
这个代码是我自己写的。。。我不知道怎么修改而已。。
2013-03-29 22:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
那我闭嘴好了

授人以渔,不授人以鱼。
2013-03-29 22:24
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
得分:3 
你知道C++中,不止C++中,面向对象的语言中都要求你实现的函数要在头文件中声明过,不能是在未在类中声明就去实现。
5楼说的那个函数你看看你类中的声明和类外的实现是一个函数吗???
之所以给你报重载函数找不到,是因为编译器认为那个带参的函数是一个重载函数,但是在类中你却没有声明。
要是你写的,我也相信是你写的,你只是有些粗心了,认真点。
2013-03-30 00:21
wlllch
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2013-3-28
得分:3 
看不懂

新手上路,说错不要见怪。
2013-03-30 01:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402302-1-1.html




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

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