Giả sử tôi có hai lớp. Một gọi là Point:Cấp độ truy cập lớp C++
class Point{
public:
Point(): x_(0), y_(0) {}
protected:
int x_, y_;
};
Sau đó, tôi có một lớp, mà xuất phát từ Point:
class Point3D : public Point {
public:
Point3D(): Point(), z_(0){}
double distance(Point3D pt, Point base) const;
protected:
int z_;
};
double Point3D::distance(Point3D pt, Point base) const
{
int dist_x, dist_y;
dist_x = base.x_ - x_;
dist_y = base.y_ - y_;
return sqrt(dist_x * dist_x +
dist_y * dist_y);
}
Sau đó, tôi đã nhận lỗi như: base.x_ được bảo vệ trong bối cảnh này. Nhưng mức truy cập của Point3D to Point là công khai, cộng với thành viên dữ liệu x_ trong Point được bảo vệ. Vì vậy, nó được cho là không có lỗi, phải không? Ai đó có thể giúp tôi làm rõ điều này không?
Btw., Bạn có nên sử dụng pt thay vì điều này hay xóa tham số pt không? – deviantfan
@deviantfan oh quên thông số đầu vào pt. –