作者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