01/10/2018, 12:07

Con trỏ this trong Hướng đối tượng C++

Ai có thể nói dễ hiểu và lấy ví dụ cho mình được không.Mình học đến phần này thì hơi bị ngu không hiểu được.

Trần Hoàn viết 14:12 ngày 01/10/2018

this tức là “chính mình”
Giả sử class A được khai báo như sau:
(Cú pháp có thể không chính xác, vì mình thực ra không học C++ )

class A
{
	public int P1;
	public double P2;
	public void ahjhj(A Input)
	{
		this -> P1 = (int)Input.P2;
		this -> P2 = Input.P1 + Input.P2 - this -> P1;
	}
}

Còn đây là dạng viết gọn, thường sử dụng hơn:

class A
{
	public int P1;
	public double P2;
	public void ahjhj(A Input)
	{
		P1 = (int)Input.P2;
		P2 = Input.P1 + Input.P2 - P1;
	}
}

Giả sử có 2 đối tượng a1a2 đều có kiểu dữ liệu A

a1a1.P1 = 5a1.P2 = 6.3
Như vậy khi gọi phương thức a2.ahjhj(a1); ta có a2.P1 = 6a2.P2 = 5.3

Đôi khi người ta dùng this để cho code sáng rõ hơn, như trong ví dụ trên. Hoặc đôi khi nó là bắt buộc (thực ra là không bắt buộc, chẳng qua thằng coder nó không nghĩ nổi cái tên biến tham số cho ra hồn, thế là đặt tên trùng luôn với thuộc tính lớp

void abcdef(int P1)
{
	this -> P1 = P1;//cái không có this là tham số phương thức, cái có this là thuộc tính đối tượng.
}
Bài liên quan
0