帮忙查错,谢谢!
#include <iostream.h>class Date
{
public:
int month,day,year;
void display()
{
char *mon[] = {
"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"
};
cout<<mon[Date.month]<<" "<<Date.day<<","<<Date.year;
}
};
void main()
{
Date birthday = {1,16,1984};
birthday.display();
}
//你见过这种写法吗,直接写成month或者是this->month
//不关构造函数的事,有默认的,跟struct一样,结构体可以这样赋值 感谢三楼的兄弟!!
就是说在class内调用数据成员不能用“.”符号
那么直接用month和this->month有区别吗?
能否告诉我一下呢,谢谢! 结构体是可以这样,但是我觉得不是很好...一旦错位得到的结果很奇怪而且只适合变量公有的情况,因为结构体默认都是共有的..this指针..不要..或者用实例对象..都可以
#include <iostream.h>
class Date
{
private:
int month,day,year;
Date():month(0),day(0),year(0){}
public:
Date(int i,int j,int k):month(i),day(j),year(k){}
void display(Date d=*new Date())
{
char *mon[] = {
"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"
};
cout<<mon[d.month]<<" "<<d.day<<","<<d.year<<endl;
}
};
void main()
{
Date birthday(1,16,1984);
birthday.display();
birthday.display(birthday);
}
[[it] 本帖最后由 sunkaidong 于 2008-5-6 19:30 编辑 [/it]] [quote][bo]以下是引用 [un]sunkaidong[/un] 在 2008-5-6 19:24 的发言:[/bo]
结构体是可以这样,但是我觉得不是很好
[/quote]
他写的就是一个结构体,这哪像个类.... [quote][bo]以下是引用 [un]cherrywang[/un] 在 2008-5-6 19:13 的发言:[/bo]
感谢三楼的兄弟!!
就是说在class内调用数据成员不能用“.”符号
那么直接用month和this->month有区别吗?
能否告诉我一下呢,谢谢! [/quote]
不是不能用".",只不过这个地方的是DATA是类名,只有对象才能用"."
那两个对普通变量是一样的,但静态变量不能用this->month 哦,谢谢P大哥啊
本来是个结构体,我为了看起来方便写成类了,呵呵
原来在类里面不能用.啊~,长见识了
这样记得牢,哈哈 [quote][bo]以下是引用 [un]cherrywang[/un] 在 2008-5-6 22:11 的发言:[/bo]
原来在类里面不能用.啊~,长见识了
这样记得牢,哈哈 [/quote]
在结构体里照样不能用结构体名加"."来表示成员,一样要用到变量名(只不过在类里将其称为对象),而不是结构体名. 结构体在c++primer里面可看成局域类
页:
[1]
