PDA

View Full Version : این خطا مربوط به چی هست و چگونه میشه حلش کرد؟



Cave_Man
سه شنبه 13 اسفند 1387, 21:40 عصر
با سلام
من این کلاس رو تعریف کردم اما خطای زیر رو دریافت میکنم


class Application
{
public:
// virtual ~Application() {};
virtual void onCreate( const SessionID& ) = 0;



error C2143: syntax error : missing ',' before '&'

ممنون میشم اگه راهنمایی کنید.

Nima_NF
چهارشنبه 14 اسفند 1387, 01:35 صبح
نوع پارامتر ورودی تابع را مشخص نکرده اید، مثلا :



virtual void onCreate( const int &SessionID ) = 0;

Cave_Man
چهارشنبه 14 اسفند 1387, 06:24 صبح
SessionID&
معنی این قسمت از کد چی هست؟ لطفا یه کم توضیح بدین. شما در کدتون علامت امپرساید رو & قبل از sessionID گذاشتین در حالی که در کد اول بعد از SessionID هست .تفاوت این دو در چی هست؟

Nima_NF
چهارشنبه 14 اسفند 1387, 15:12 عصر
&SessionID به تنهایی غلط هست مگر این که بعد از آن نام متغیر آورده شود.

دقیقا مثل تعریف اشاره گر، علامت * در کجا قرار می گیرد؟ بین نام متغیر و نوع آن.
& هم به همین شکل باید بین نوع و نام قرار گیرد. (یعنی آدرس را می فرستند به صورت مرجع)

من نمی دانم در کد شما SessionID چه هست، ممکن هست یک struct یا class باشد، در این صورت باز هم بعد از & باید یک نوع از همان SessionID تعریف شود، به این شکل در هنگام ورود کپی از شئی آن ارسال نمی شود بلکه ادرس را ارسال می کند و همه تغییرات هم بر روی نسخه ارسال شده اعمال می شود:



virtual void onCreate( const SessionID& sessionIDVariable ) = 0;

emad_67
پنج شنبه 15 اسفند 1387, 00:03 صبح
ممکن هست یک struct یا class باشد، در این صورت باز هم بعد از & باید یک نوع از همان SessionID تعریف شوداحتمالا struct یا class نیست چون اگه باشه نباید اروری به وجود بیاد چون در prototype مشکلی نداره نام متغیر رو ننویسیم. یعنی همون & SessionID درسته به نظرم.
البته من هر کاری کردم به من این ارور ایشون رو نداد تا دقیق بفهمم مشکل از کجاست.