Tại sao phải dùng this->theTich() mà không phải this.theTich()?

Mọi người cho mình hỏi, tại sao this->theTich() sao ko dùng được this.theTich() nhỉ :frowning:
hay là do this nó như là 1 con trỏ ?
mình cảm ơn !!!

#include<iostream>

using namespace std;

class Box {
private:
    double chieudai; // chieu dai cua mot box
    double chieurong; // chieu rong cua mot box
    double chieucao; // chieu cao cua mot box
public:
    Box(double chieudai, double chieurong, double chieucao) {
        this->chieudai = chieudai;
        this->chieurong = chieurong;
        this->chieucao = chieucao;
    }
    
    double theTich() {
        return chieudai * chieurong * chieucao;
    }
    
    int sosanh(Box box) {
        if (this->theTich() > box.theTich()) {
            return 1;
        } else if (this->theTich() > box.theTich()) { 
            return 0;
        } else {
            return -1;
        }
    }
};

int main(void) {
    Box box1 = Box(2.5, 4, 2); // khai bao box1
    Box box2 = Box(4.5, 2, 3); // khai bao box2

    if (box1.sosanh(box2) == 1) {
        cout << "Box1 co the tich lon hon Box2" << endl;
    } else if (box1.sosanh(box2) == 0) {
        cout << "Box1 co the tich bang Box2" << endl;
    } else {
        cout << "Box1 co the tich nho hon Box2" << endl;
    }
    return 0;
}

trong C++, this là con trỏ.

5 Likes

okay mình hiểu rồi, mình cảm ơn <3

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?