Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > return *this;


Автор: kkkggg 27.6.2006, 15:34
return *this;

Как это понимать? Что возвращаем? 

Автор: Romikgy 27.6.2006, 15:38
сам объект 

Автор: regis 27.6.2006, 15:45
Текущий объект того метода, из которого возвращаем. А ситуаций, когда это нужно, можно придумать много.
 

Автор: MAKCim 27.6.2006, 16:46
без этого такое не сделаешь
Код

obect a,b,c,d;
cout<<a<<b<<c<<d;
 

Автор: Rockie 27.6.2006, 20:44
Цитата
CCat::CCat()
{
    status=ST_ALIVE;
    hunger_level=INIT_HUNGER_LVL;
    power_level=INIT_POWER_LVL;
    age=0;
};
Если написать не CCat::CCat(), а просто CCat(), то компилятор ничего не поймет, будет считать ССat()  обыкновенной Си-шной функцией. Оно вам не надо. Как вы можете видеть, переменные класса используются безо всяких объявлений. Почему ? Потому что в любую функцию-член класса по умолчанию предается указатель this, который указывает на экземпляр класса в памяти. 

this
   \ 
     \___Some_class___
      |                             |
      |     int A;                |
      |     int B;                |
      | ________________|

Т.е. для компилятора это видится так:
CCat::CCat()
{
    this->status=ST_ALIVE;
    this->hunger_level=INIT_HUNGER_LVL;
    this->power_level=INIT_POWER_LVL;
    this->age=0;
};
Если бы Страуструп заставил программистов везде писать this-> самостоятельно, С++ никогда б не стал популярен, а Брайан - богат.


"С++ на кошках." Петр Иванов mailto:[email protected] 

Автор: S.A.P. 27.6.2006, 21:08
ужос 

Автор: DeadSoul 27.6.2006, 22:05
Цитата(Romikgy @  27.6.2006,  15:38 Найти цитируемый пост)
сам объект  

Или ссылку на самого себя. Или(но об этом умолчим, автору темы это не нужно) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)