Thắc mắc về kiểu trả về của các operators

Mình gặp khó khăn trong việc phân biệt những kiểu trả về của operator trong class.
Mình đã đọc qua 1 số slide tiếng việt trên mạng nhưng vẫn không tìm được lời giảng hợp lí.
Mong mọi người giúp đỡ mình với
Mình có 1 class như sau :

class Point2D
{
	int x;
	int y;
public :
	Point2D();
	Point2D(int , int );
	Point2D(const Point2D&);

	Point2D operator+(const Point2D&);
        const Point2D& operator=(const Point2D&);
	
	Point2D& operator++();
	const Point2D operator++(int);

}; 

Vậy cho mình hỏi là kiểu trả về của các operator dạng : Point2D, const Point2D, Point2D& và const Point2D& có gì khác nhau vậy.
Cảm ơn đã quan tâm

Để thông thường thì không vấn đề gì. :slight_smile:

Thêm const thì nghĩa là trả về hằng số.

Thêm & thì nghĩa là trả về kiểu tham chiếu.

Thêm cả hai thì bạn tự suy ra. :slight_smile:

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