01/10/2018, 15:31
Lấy địa chỉ phần tử tạm thời trong Class như thế nào
ví dụ em muốn sử dụng dịa chỉ của một biến thành phần của đối tượng (class) trong một hàm thành viên của đối tượng khác thì làm sao.
SDL_RenderCopy(renderer, CollisionImage, NULL, &(CollisionRect.GetRectangle()) );
lỗi:error: taking address of temporary [-fpermissive]
giải tích code:
SDL_rendercopy lằm trong một class A,
class A lại lấy biến thành viên từ một class B thông qua một hàm get.
Bài liên quan
Lỗi này là bạn đang cố gắng truy cập vào một địa chỉ của biến tạm (temp). Biến này chỉ sống trên dòng lệnh được gọi, sẽ bị xóa ngay trước khi truy cập vào, vậy nên compiler sẽ chặn lại.
Điều quan trọng mà mình chưa hiểu:
CollisionRect
ở đây là biến hay tên class? Và đoạn code phía trên của dòng đó như thế nào?.GetRectangle()
phải trả vềconst SDL_Rect&
thay vì trả về 1 biến copySDL_Rect
. BiếncollisionRect
phải chứaSDL_Rect
này.