Menu
Coddy logo textTech

Wskaźnik „this”

Część sekcji Programowanie obiektowe ścieżki C++ w Coddy. Lekcja 7 z 104.

W C++ this jest wskaźnikiem na bieżący obiekt. Użyj this->, aby uzyskać dostęp do składowych, zwłaszcza gdy nazwy parametrów są takie same jak nazwy składowych.

Bez this parametr przesłania składową

void Player::setName(std::string name) {
    name = name;  // Przypisuje parametr samemu sobie! Pole składowe pozostaje bez zmian.
}

Używanie this-> do poprawnego przypisywania wartości

void Player::setName(std::string name) {
    this->name = name;  // Przypisuje parametr do pola klasy
}

Używanie this-> w metodach

std::string Player::getStatus() {
    return this->name + " - Score: " + std::to_string(this->score);
}

Wskaźnik this zawsze wskazuje bieżącą instancję obiektu. W przeciwieństwie do języków Java i C#, w których this jest referencją, w C++ jest wskaźnikiem, więc do uzyskiwania dostępu do składowych używasz -> zamiast ..

challenge icon

Wyzwanie

Średni

Zaimplementuj metody klasy Player, używając this->, aby odróżnić składowe od parametrów o tej samej nazwie:

  • Metody ustawiające: użyj this->, aby przypisać parametry do składowych
  • getStatus(): użyj this->, aby uzyskać dostęp do składowych, zwróć "<name> - Score: <score>, Level: <level>"

Spróbuj swoich sił

#include <iostream>
#include "Player.h"

int main() {
    std::string name;
    int score, level;
    std::getline(std::cin, name);
    std::cin >> score >> level;
    
    Player player;
    player.setName(name);
    player.setScore(score);
    player.setLevel(level);
    
    std::cout << "Name: " << player.name << std::endl;
    std::cout << "Score: " << player.score << std::endl;
    std::cout << "Level: " << player.level << std::endl;
    std::cout << player.getStatus() << std::endl;
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator C++ online