C++类的一个小问题

密斯刘 2009-07-05 07:48:42
看代码 ~~



Date *pDate = new Date();
pDate->SetDate(2010,10,1); //为什么这里把 -> 用 . 编译器就报错了呢?我用的DEV C++
pDate->Print();
delete pDate;
...全文
29 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yz1987cn 2009-07-05
  • 打赏
  • 举报
回复
->和(*p).相同
guoxianyu521 2009-07-05
  • 打赏
  • 举报
回复
(*pDate)是取出对象的地址,这样(*pDate)就相当一个对象了就可以用 .SetDate(2010,10,1); 来访问了!
guoxianyu521 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 vb2010 的帖子:]
看代码 ~~



C/C++ code
Date *pDate = new Date();
pDate->SetDate(2010,10,1); //为什么这里把 -> 用 . 编译器就报错了呢?我用的DEV C++
pDate->Print();
delete pDate;
[/Quote]


指针可一有两种用法:
(*pDate).SetDate(2010,10,1);
pDate->SetDate(2010,10,1);
对象只能
pDate.SetDate(2010,10,1);

这是语法,规定。
tangwing 2009-07-05
  • 打赏
  • 举报
回复
楼上正解
douchog_13k 2009-07-05
  • 打赏
  • 举报
回复
指针用->
对象才用.
blh 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 vb2010 的帖子:]
看代码 ~~


C/C++ codeDate*pDate=newDate();
pDate->SetDate(2010,10,1);//为什么这里把 -> 用 . 编译器就报错了呢?我用的DEV C++pDate->Print();
delete pDate;
[/Quote]

基本语法
zzcmx2008 2009-07-05
  • 打赏
  • 举报
回复
因为你的pDATE是指针,使用指针调用类的成员函数时要用->,或者使用:(*pDATE).
改成:*pDATE.SetDate(2010,10,1); 也可以。
moon2008moon 2009-07-05
  • 打赏
  • 举报
回复
指针调用用->
对象调用用.
yashuwa0622 2009-07-05
  • 打赏
  • 举报
回复
指针调用和对象调用的区别
ljt3969636 2009-07-05
  • 打赏
  • 举报
回复
p->和(*p).作用相同
IT流水兵 2009-07-05
  • 打赏
  • 举报
回复
指针调函数要用->
windsting 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 vb2010 的回复:]
引用 3 楼 taidengpubc 的回复:
指针必须用->
如果想用。可以
Date pDate;
pDate.SetDate(2010,10,1); //为什么这里把 -> 用 . 编译器就报错了呢?我用的DEV C++
pDate.Print();




我记得书上说->和.是一样的 …………糊涂了 我再看看
[/Quote]

哪本书告诉你这俩运算符是一样的?请说书名、作者、出版社,让大家以后都不要买这本书了。
dinjay 2009-07-05
  • 打赏
  • 举报
回复
初学的还是VC++6.0吧...指针调函数必须是->
密斯刘 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 taidengpubc 的回复:]
指针必须用->
如果想用。可以
Date pDate;
pDate.SetDate(2010,10,1); //为什么这里把 -> 用 . 编译器就报错了呢?我用的DEV C++
pDate.Print();

[/Quote]

我记得书上说->和.是一样的 …………糊涂了 我再看看
taidengpubc 2009-07-05
  • 打赏
  • 举报
回复
指针必须用->
如果想用。可以
Date pDate;
pDate.SetDate(2010,10,1); //为什么这里把 -> 用 . 编译器就报错了呢?我用的DEV C++
pDate.Print();
leewon1988 2009-07-05
  • 打赏
  • 举报
回复
加括号貌似
leewon1988 2009-07-05
  • 打赏
  • 举报
回复
因为你的pDATE是指针,改成
*pDATE.SetDate(2010,10,1);
就行了

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧