#include <iostream.h>
#include "hpdate.h"
void main()
{
void Tdate ::Print()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
} Tdate::Set(6,10,1990);
Tdate::Print;
void Tdate::Set(int m, int d, int y)
{
month=m;
day=d;
year=y;
}
}//以下为hpdate.h
class Tdate
{
public:
void Set(int m,int d,int y);
void Print();
private:
int month;
int day;
int year;
};
编译出错:e:\Application\c++2\c++2.cpp(10): error C2352: 'Tdate::Set' : illegal call of non-static member function
e:\Application\c++2\hpdate.h(4) : see declaration of 'Tdate::Set'
e:\Application\c++2\c++2.cpp(6): error C2601: 'Tdate::Print' : local function definitions are illegal
e:\Application\c++2\c++2.cpp(13): error C2601: 'Tdate::Set' : local function definitions are illegal
谢谢大家了~顶者有分
#include "hpdate.h"
void main()
{
void Tdate ::Print()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
} Tdate::Set(6,10,1990);
Tdate::Print;
void Tdate::Set(int m, int d, int y)
{
month=m;
day=d;
year=y;
}
}//以下为hpdate.h
class Tdate
{
public:
void Set(int m,int d,int y);
void Print();
private:
int month;
int day;
int year;
};
编译出错:e:\Application\c++2\c++2.cpp(10): error C2352: 'Tdate::Set' : illegal call of non-static member function
e:\Application\c++2\hpdate.h(4) : see declaration of 'Tdate::Set'
e:\Application\c++2\c++2.cpp(6): error C2601: 'Tdate::Print' : local function definitions are illegal
e:\Application\c++2\c++2.cpp(13): error C2601: 'Tdate::Set' : local function definitions are illegal
谢谢大家了~顶者有分
{
cout < <month < <"/" < <day < <"/" < <year < <endl;
}
void Tdate::Set(int m, int d, int y)
{
month=m;
day=d;
year=y;
}
放到main函数外面
对了,你的开发环境是什么?
Tdate::Set(6,10,1990);
Tdate::Print;
这样调用也有问题
你应该这样
Tdate datetmp;
datetmp.Set(6,10,1990);
datetmp.Print(); 要这样调用!
datetmp.Set(6,10,1990);
而Tdate::Set不行呢?
//以下为hpdate.h
class Tdate
{
public:
static void Set(int m,int d,int y);
static void Print();
private:
static int month;
static int day;
static int year;
};// 以下为.cpp文件
#include <iostream>
#include "hpdate.h" int Tdate::month = 0;
int Tdate::day = 0;
int Tdate::year = 0;void Tdate::Print()
{
cout <<month<<"/" <<day<<"/" <<year<<endl;
} void Tdate::Set(int m, int d, int y)
{
month=m;
day=d;
year=y;
} void main()
{
Tdate::Set(6,10,1990);
Tdate::Print();
}