-
اشاره گر this
راستش من هر چي به اين اشاره گر this فكر ميكنم گيج تر ميشم يكي در موردش بهم توضيح جامع بده وبگه در كد زير مي تونه كجاها قرار بگيره؟:11:
کد:
// Listing 10.15 - Copy constructors
#include <iostream>
using namespace std;
class Cat
{
public:
Cat(); // default constructor
// copy constructor and destructor elided!
int GetAge() const { return *itsAge; }
int GetWeight() const { return *itsWeight; }
void SetAge(int age) { *itsAge = age; }
Cat & operator=(const Cat &);
private:
int *itsAge;
int *itsWeight;
};
Cat::Cat()
{
itsAge = new int;
itsWeight = new int;
*itsAge = 5;
*itsWeight = 9;
}
Cat & Cat::operator=(const Cat & rhs)
{
if (this == &rhs)
return *this;
*itsAge = rhs.GetAge();
*itsWeight = rhs.GetWeight();
return *this;
}
int main()
{
Cat Frisky;
cout << "Frisky's age: " << Frisky.GetAge() << endl;
cout << "Setting Frisky to 6...\n";
Frisky.SetAge(6);
Cat Whiskers;
cout << "Whiskers' age: " << Whiskers.GetAge() << endl;
cout << "copying Frisky to Whiskers...\n";
Whiskers = Frisky;
cout << "Whiskers' age: " << Whiskers.GetAge() << endl;
return 0;
}
-
this یه اشاره گر به شی جاری هستش
فرض کن کلاس Sample رو داری که یه تابع توشه که میخوای یه سری عملیات رو رو داده های کلاس انجام بده بعد خود شی رو برگردونه .
واسه این کار میایم return this رو قرار میدیم . کلاس رو که ما تعریف میکنیم در واقع داریم یه نوع داده جدید رو تعریف میکنیم که واسش اصلا فضایی گرفته نمیشه خوب حالا ما میخوایم بعدا به یه تعداد نامشخصی از کلاس شی بسازیم حالا تو مرحله تعریف کلاس ما که اسم اشیایی که در آینده قرارقه ساخته بشه رو نداریم که پس باید بگیم از اشاره گر this استفاده کن
حالا نمیدونم تونستم خوب برسونم یا نه
موفق باشید
-
و در یک بیانی:
this اصولا برای اشاره به آبجکتهای اصلی به کار میره،
فرض کنید کلاس زیر رو دارید:
کد:
#include <iostream>
using namespace std;
class sample{
private:
int a;
public:
int set(int x){
a=x;
}
int test(){
int a;
a = this->a;
return a;
}
};
int main(){
sample obj;
obj.set(3);
cout<<obj.test()<<endl;
system("pause");
return 0;
}
در اینجا this داره به متغیر a در قسمت private اشاره می کنه
حالا با این توضیح به مثال خودتون نگاه کنید...
-
راستش من نمي فهمم منظورتون از شئ جاري چيه كه this بهش اشاره مي كنه؟
-
شی جاری شیی هست که اون تابع رو فراخونی کرده