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

第一次写c++遇到问题

nwpu063417 发布于 2008-02-03 21:47, 1392 次点击
看书上一个例子,为什么运行有问题 ?
//Date.h
#include <iostream.h>

class Date
{

private:
    int mouth;
    int date;
    int year;

public:
    Date(int m = 2, int d = 1, int y = 2008)
    {
        mouth = m;
        date = d;
        year = y;
    }

    Date(Date &d)
    {
        mouth = d.mouth;
        date = d.date;
        year = d.year;
    }

    ~Date()
    {}

    void printDate()
    {
        cout<<month<<"-"<<date<<"-"<<year<<endl;
    }
}

//Date.cpp
#include "Date.h"

void main()
{
    Date today(2, 3, 2008);
    Date someday;
    Date someday2(today);

    today.printDate();
    someday.printDate();
    someday2.printDate();

    //return 0;
}
7 回复
#2
nwpu0634172008-02-03 21:48
error C2143: syntax error : missing ';' before 'PCH creation point'
Error executing cl.exe.

Date.exe - 1 error(s), 0 warning(s)
#3
晨曦的朝阳2008-02-04 00:08
我刚刚才自学了C++十天,所以不太懂。不过岂码我知道你上面有一个错误,当我们构建完一个类时,在最后一个“}”后在加上个“,”,你的源代码没有加,补上后再试下吧。呵呵
#4
忘记喧嚣2008-02-04 00:18
是加一个分号 ;不是逗号  

类定义后面 规定要有一个 ;分号 老师或者书上应该强调
   void printDate()
    {
        cout<<month<<"-"<<date<<"-"<<year<<endl;
    }
};

missing ';' 错误提示很清楚

[[it] 本帖最后由 忘记喧嚣 于 2008-2-4 00:20 编辑 [/it]]
#5
晨曦的朝阳2008-02-04 12:57
不好意思啊,一时把分号打成逗号了。
#6
nwpu0634172008-02-05 22:43
知道了,谢谢大家了。原来学java在类最后没有;   现在自己看书没有看到。。。
#7
ioriliao2008-02-06 11:16
呵呵...这种错误对于初学者来说确实会常常犯.
#8
随心2008-02-10 11:50
类定义只是定义了一种数据类型,不涉及数据分配,只是完成了类的声明。

类后的分号是为了与C兼容,因为也可以在类后定义对象。但这样不是一个好的习惯。
1