Menu
Coddy logo textTech

'this' İşaretçisi

Coddy'nin C++ Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 7 / 104.

C++'da, this geçerli nesneye yönelik bir işaretçidir. Özellikle parametre adları üye adlarıyla eşleştiğinde, üyelere erişmek için this-> kullanın.

this olmadan, parametre üyeyi gölgeler

void Player::setName(std::string name) {
    name = name;  // Parametreyi kendisine atar! Üye değişmez.
}

Değerleri doğru bir şekilde atamak için this-> kullanma

void Player::setName(std::string name) {
    this->name = name;  // Parametreyi üyeye atar
}

Metotlarda this-> kullanımı

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

this işaretçisi her zaman geçerli nesne örneğini gösterir. this'in bir referans olduğu Java ve C#'ın aksine, C++'da bu bir işaretçidir; bu nedenle üyelere erişmek için . yerine -> kullanırsınız.

challenge icon

Görev

Orta

Aynı isme sahip üyeler ve parametreler arasındaki ayrımı yapmak için this-> kullanarak Player sınıfı metotlarını uygulayın:

  • Setter metotları: parametreleri üyelere atamak için this-> kullanın
  • getStatus(): üyelere erişmek için this-> kullanın, "<name> - Score: <score>, Level: <level>" döndürün

Kopya kağıdı

C++'da, this geçerli nesneye yönelik bir işaretçidir. Özellikle parametre adları üye adlarıyla eşleştiğinde, üyelere erişmek için this-> kullanın.

this olmadan, parametre üyeyi gölgeler:

void Player::setName(std::string name) {
    name = name;  // Parametreyi kendisine atar! Üye değişmez.
}

Değerleri doğru şekilde atamak için this-> kullanımı:

void Player::setName(std::string name) {
    this->name = name;  // Parametreyi üyeye atar
}

Metotlarda this-> kullanımı:

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

this işaretçisi her zaman geçerli nesne örneğini gösterir. this'in bir referans olduğu Java ve C#'ın aksine, C++'da bir işaretçidir, bu nedenle üyelere erişmek için . yerine -> kullanırsınız.

Kendin dene

#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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler