作者luckychild (兑现承诺)
看板C_and_CPP
标题[问题] expected primary-expression before '.' token
时间Wed Dec 9 11:22:39 2009
遇到的问题: (题意请描述清楚)
class"B"的 public data member vector<double> *f
而main内有个函式 A(vector<double> &)
我这样做 A(*(*B.f))
程式跑出来的错误结果:
expected primary-expression before '.' token
开发平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有问题的code: (请善用置底文标色功能)
补充说明:
请指正我的程式观念,我不知道该怎麽改...
谢谢罗.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.11.174
1F:推 VictorTom:B是指标吗?? 是就A(*((*B).f)), 不是就A(*(B.f))试试@@" 12/09 11:51
2F:→ VictorTom:前者A(*(B->f))应该也行; 不是这个问题的话就不知了@@" 12/09 11:51
3F:推 AstralBrain:就error message看来.. B是class name 12/09 11:55
4F:→ AstralBrain:non-static member要有一个instance才能用 12/09 11:56
5F:→ AstralBrain:所以要 B b; A(*b.f); 这样 12/09 11:57
6F:→ tinlans:class name 又不是 primary-expression,你没查语法表吗。 12/09 12:10
什麽语法表,我不是资工相关科系的,所知道的资源比较少.
我犯了低级错误.
我有class B.在main内我忘记打上物件的名称就这样用
B (...........); 但可以compile,我也就找不到错误在这了
这样compiler不会告诉我错了喔!? 为什麽呢?
应该这样才对 B b(...................);
谢谢大家热心回覆.
※ 编辑: luckychild 来自: 140.120.11.174 (12/09 12:39)
7F:→ tinlans:B(xxx) 是合法的啊,意思是造出一个临时物件。 12/09 14:40
8F:→ tinlans:程式语言跟 BNF 的看法在大一计概会教吧,没学到要骂老师 12/09 14:42
9F:→ tinlans:,我记得以前很多非资工系的计概乱教,学生去考预官计概死 12/09 14:43
10F:→ tinlans:很惨才知道要回学校骂老师乱教 XD 12/09 14:43
11F:推 VictorTom:外系的大一资概有半学期一学期都在教office之类的吧XD 12/09 15:15
12F:→ MOONRAKER:前台北教大校长庄某当年在某淡字学校开的资概也差不多 12/09 16:29