PDA

View Full Version : سوال: ایا وجود عضو {} () CVector در این کد اضافی است؟



motherboard
جمعه 31 مرداد 1393, 11:43 صبح
سلام.از سوالات مکررم از شما عذر می خوام.همون طور که در کد زیر می بینید عمل گرانبار کردن انجام گرفته است.اما به نظر من اون عضو سازنده {} () CVector هیچ نقشی رو در کد نداره؟ایا به نظر شما وجود این عضو در این کد علت خاصی داره و یا صرفا نخودیه؟

#include <iostream>
using namespace std;

class CVector {
public:
int x,y;
CVector () {};
CVector (int a,int b) : x(a), y(b) {}
CVector operator + (const CVector&);
};

CVector CVector::operator+ (const CVector& param) {
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return temp;
}

int main () {
CVector foo (3,1);
CVector bar (1,2);
CVector result;
result = foo + bar;
cout << result.x << ',' << result.y << '\n';
return 0;
}

ciavosh
جمعه 31 مرداد 1393, 11:49 صبح
سازنده رو به صورت public در آورده.

motherboard
جمعه 31 مرداد 1393, 12:02 عصر
حرف شما درست.اما بحث من اینه که ایا نقش به سزایی رو در روند اجرای کد داره؟اخه من کد رو نگاه می کنم می بینم هیچ نقش خاصی رو ایفا نمی کنه.

rahnema1
جمعه 31 مرداد 1393, 12:18 عصر
حرف شما درست.اما بحث من اینه که ایا نقش به سزایی رو در روند اجرای کد داره؟اخه من کد رو نگاه می کنم می بینم هیچ نقش خاصی رو ایفا نمی کنه.
می تونیدکامنتش کنید تا ببنید چی میشه
مثلا اون خط CVector result داره از همون سازنده استفاده می کنه یعنی سازنده ای که آرگومانی نمی گیره

motherboard
جمعه 31 مرداد 1393, 12:32 عصر
اهان.مطلب رو گرفتم.الان که دوباره تستش کردم فهمیدم که وجود اون عضو باید باشه.از همگی ممنونم.