| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 673 人关注过本帖
标题:钱能C++书中重载成员函数编译出错,请教一下。
只看楼主 加入收藏
cookies5000
Rank: 2
等 级:论坛游民
帖 子:33
专家分:48
注 册:2009-10-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
钱能C++书中重载成员函数编译出错,请教一下。
#include<iostream>
#include<iomanip>
using namespace std;

class Date
{
    int y,m,d;
   
public:
    void set(int year,int month,int day);
    void set(string &s);
    bool isleapyear();
    void print();
};
//
void Date::set(int year,int month,int day)
{
    y=year;
    m=month;
    d=day;
}
//
void Date::set(string &s)
{
    y=atoi(s.substr(0,4).c_str());
    m=atoi(s.substr(5,2).c_str());
    d=atoi(s.substr(8,2).c_str());
}
//
void Date::print()
{
    cout<<setfill('0');
    cout<<setw(4)<<y<<'-'<<setw(2)<<m<<'-'<<setw(2)<<d<<'\n';
    cout<<setfill(' ');
}
//
bool Date::isleapyear()
{
    return(y%4==0 && y%100!=0) || (y%400==0);
}
//
void main()
{
    Date d,e;
    d.set(2008,12,16);
    e.set("2008-12-08");    //line 46
    e.print();
    if(d.isleapyear())
    d.print();
}
编译报错 line 46:error C2275: 'string' : illegal use of this type as an expression
搜索更多相关主题的帖子: 重载 编译 成员 函数 
2009-10-25 11:23
Tomato_fan
Rank: 2
等 级:论坛游民
帖 子:9
专家分:65
注 册:2009-10-18
收藏
得分:20 
void set(string &s);改成void set(const string &s);应该就对了吧,如果没有别的错误的话~
2009-10-25 12:13
Tomato_fan
Rank: 2
等 级:论坛游民
帖 子:9
专家分:65
注 册:2009-10-18
收藏
得分:0 
void set(string &s);改成void set(const string &s);应该就对了吧,如果没有别的错误的话~
2009-10-25 12:13
cookies5000
Rank: 2
等 级:论坛游民
帖 子:33
专家分:48
注 册:2009-10-25
收藏
得分:0 
谢谢楼上哥们,可我编译还是不行啊。。。
2009-10-25 12:23
cookies5000
Rank: 2
等 级:论坛游民
帖 子:33
专家分:48
注 册:2009-10-25
收藏
得分:0 
sorry ,刚才只改一处。。。是可以编译通过。。。请问一下为什么要这么改?
2009-10-25 12:26
supermat
Rank: 2
等 级:论坛游民
帖 子:10
专家分:29
注 册:2009-1-19
收藏
得分:0 
法一:
void set(string &s);改成void set(const string &s)
是因为你的main函数中调用时是:e.set("2008-12-08"),是以常量形式传进去的

法二:
void set(string &s);不变
在main函数中将e.set("2008-12-08")改成
string s="2008-12-08";
e.set(s);
2009-10-28 16:27
快速回复:钱能C++书中重载成员函数编译出错,请教一下。
数据加载中...
 
   



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

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