Menu
Coddy logo textTech

Il puntatore 'this'

Fa parte della sezione Programmazione orientata agli oggetti del percorso C++ di Coddy. Lezione 7 di 104.

In C++, this è un puntatore all'oggetto corrente. Usa this-> per accedere ai membri, soprattutto quando i nomi dei parametri corrispondono ai nomi dei membri.

Senza this, il parametro nasconde il membro

void Player::setName(std::string name) {
    name = name;  // Assegna il parametro a se stesso! Il membro rimane invariato.
}

Usare this-> per assegnare correttamente i valori

void Player::setName(std::string name) {
    this->name = name;  // Assegna il parametro al membro
}

Usare this-> nei metodi

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

Il puntatore this punta sempre all'istanza dell'oggetto corrente. A differenza di Java e C#, dove this è un riferimento, in C++ è un puntatore, quindi usi -> invece di . per accedere ai membri.

challenge icon

Sfida

Medio

Implementa i metodi della classe Player usando this-> per distinguere i membri dai parametri con lo stesso nome:

  • Metodi setter: usa this-> per assegnare i parametri ai membri
  • getStatus(): usa this-> per accedere ai membri e restituisci "<name> - Score: <score>, Level: <level>"

Provalo tu

#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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C++ online