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-> самостоятельно, С++ никогда б не стал популярен, а Брайан - богат. |