Menu
CoddyTech

Pointer 'this'

Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan C++ di Coddy. Pelajaran 7 dari 104.

Dalam C++, this adalah pointer ke object saat ini. Gunakan this-> untuk mengakses member, terutama saat nama parameter sama dengan nama member.

Tanpa this, parameter menaungi member: di dalam method, name berarti parameter, yang menyembunyikan member dengan nama yang sama. Jadi, name = name hanya menetapkan parameter ke dirinya sendiri.

void Player::setName(std::string name) {
    name = name;  // Parameter diisi dengan nilainya sendiri! Anggota class tetap tidak berubah.
}

Menggunakan this-> untuk menetapkan nilai dengan benar

void Player::setName(std::string name) {
    this->name = name;  // Menetapkan parameter ke anggota class
}

Menggunakan this-> dalam method

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

Pointer this selalu menunjuk ke instance object saat ini. Berbeda dengan Java dan C#, yang menggunakan this sebagai referensi, di C++ this adalah pointer, jadi kamu menggunakan -> alih-alih . untuk mengakses anggota.

challenge icon

Tantangan

Sedang

Implementasikan method class Player menggunakan this-> untuk membedakan member dan parameter yang memiliki nama sama:

  • Method setter: gunakan this-> untuk menetapkan parameter ke member
  • getStatus(): gunakan this-> untuk mengakses member, lalu kembalikan "<name> - Score: <score>, Level: <level>"

Coba sendiri

#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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler C++ online