Tôi có một lớp trông xấp xỉ như thế này:C++ sử dụng 'này' như một tham số
class MeshClass
{
public:
Anchor getAnchorPoint(x, y)
{
return Anchor(this, x, y);
}
private:
points[x*y];
}
Tôi muốn thực hiện một lớp đại diện cho một "Neo" điểm có thể được tiếp cận với Mesh và sửa đổi điểm, như thế này:
class Anchor
{
public:
Anchor(&MeshClass, x, y)
moveAnchor(x, y);
}
vấn đề là khi tôi cố gắng để làm cho Anchor
trong MeshClass::getAnchorPoint
phương pháp, một cái gì đó giống như return Anchor(this, x, y)
nhưng vì this
là const tôi không thể. Như một giải pháp cho đến khi tôi nhận được điều này, tôi đã Anchor chấp nhận một tham chiếu đến điểm và di chuyểnAnchor di chuyển điểm trực tiếp.
Chỉnh sửa: Vấn đề rất có thể là điều gì đó ngu ngốc tôi đã làm khi cố gắng sử dụng Tham chiếu. Tôi đã thay đổi để sử dụng một con trỏ như tôi thường và tôi có thể vượt qua trong this
mà không có khiếu nại từ trình biên dịch. Tôi gần như chắc chắn tôi đã nhận được một lỗi liên quan đến const này, nhưng tôi không thể tái tạo nó vì vậy tôi phải chỉ ra khỏi tâm trí của tôi.
Hi, đối với tôi bạn không cho rằng để biên dịch ... nó? –
Nó có lẽ không (chưa) :) Hãy nhớ rằng (ít nhất là trong đồng bằng cũ C), nếu loại không được chỉ định, nó mặc định để int, nhưng ném một cảnh báo. –
Vui lòng đăng mã thực tế bạn muốn sử dụng và lỗi mà nó tạo ra. (Không phải cách bạn cố gắng khắc phục lỗi đó.) Hiện tại, bạn khó có thể đoán được bạn đang cố gắng làm gì. –