注册 登录
编程论坛 C++教室

发现每天都能碰到问题,拜托你们了,又麻烦了

yanpeisen 发布于 2008-11-04 21:29, 739 次点击
#include <iostream.h>

class Tdate
{
    public:
        void set(int m,int d, int y)
        {
            month=m;  day=d;  year=y;
        }
        bool Isleapyear()
       {
            if((year%4==0&&year%100!=0)||(year%400==0))
                return true;
            else
                return false;
        }
        void print()
        {
            cout<<month<<"/"<<day<<"/"<<year<<endl;
        }
    private:
        int month;  int day;  int year;
};
void main()
{
    Tdate a;
    a.set(10,1,1949);
    a.print();
    if(a.Isleapyear)                        //这条语句有问题? 不管输入哪年 都是输出这句话。该这么改呢
        cout<<"It is a leap year!"<<endl;
    else
        cout<<"It is not a leap year!"<<endl;
}
6 回复
#2
youhm2008-11-04 22:07
少了括号
if(a.Isleapyear())
#3
shmilytong2008-11-04 23:35
呵呵,多细心点
#4
zzt_4282008-12-03 14:59
大哥~~~~~我真是无话可说了.......丢了个括号就不是函数啦..
#5
西佳佳2008-12-04 11:28
回复 楼主 yanpeisen 的帖子
为什么上面的函数没有定义构造函数也可以用呀
#6
hejingyang06262008-12-04 11:52
呵呵  编程还是要过细啊
#7
hitcolder2008-12-05 13:13
回复 第5楼 西佳佳 的帖子
构造函数和析构函数是可选的,如果没有定义就调用默认的构造函数,如果你一开始想初始化的话加个构造函数会更好点,比如:
    void set(int m,int d, int y)
        {
            month=m;  day=d;  year=y;
        }
可以变成:
        Tdate(int m,int d, int y)
       {
            month=m;  day=d;  year=y;
        }
1