Làm cách nào để chuyển con trỏ (Object *ob
) đến một hàm mà nguyên mẫu là void foo(Object &)
?Làm cách nào để truyền/chuyển đổi con trỏ sang tham chiếu trong C++
Trả lời
Gọi nó như thế này:
foo(*ob);
Lưu ý rằng không có đúc xảy ra ở đây, theo đề nghị trong tiêu đề câu hỏi của bạn. Tất cả những gì chúng ta đã làm là de-tham chiếu con trỏ tới đối tượng mà chúng ta truyền cho hàm.
@Ricobob Đó là những gì xảy ra trên SO rất thường xuyên. Các câu trả lời cho các câu hỏi đơn giản có thể dễ dàng được hiểu thường thu được rất nhiều phiếu bầu. Câu trả lời dài và phức tạp cho các câu hỏi phức tạp thường nhận được rất ít những người bỏ phiếu vì cử tri không thể dễ dàng đánh giá công đức. Đối với đại diện, tôi đã không có gì về điều này vì nắp đại diện. ;-) Nhưng tôi chân thành đồng ý. Tôi muốn câu trả lời phức tạp thu hút nhiều đại diện hơn. –
@DavidHeffernan Có điều này có vẻ là vấn đề - tôi đoán đó là một vấn đề cần thực hiện đối với MetaSO - nếu có ai đó chưa nêu lên điều đó. – Ricibob
@ricobob Tôi hy vọng nó đã được nâng lên rồi. –
foo(*ob);
đoán amd thêm nhiều ... thường không phải là định dạng của câu trả lời hay ở đây (mặc dù nó là chính xác trong trường hợp này), đó là lý do tại sao bạn có một downvote. – KillianDS
bhhaaa, tôi đã thêm "Tôi đoán" vì nó khiến tôi viết ít nhất 30 ký tự. đó cũng là cách tôi thêm "..........." –
@RoeeGavirel Tôi là cử tri lên đầu tiên của bạn bởi vì tôi cảm thấy lời đề nghị này rất khắc nghiệt. FWIW bạn có thể vượt quá giới hạn 30 char nhưng thêm nhận xét HTML mà tôi đã làm phiên bản đầu tiên của tôi về câu trả lời! Chỉnh sửa của tôi cho câu trả lời của bạn cho thấy cách thức. –
dụ đầy đủ cho đúc con trỏ đến đối tượng
class myClass
{
public:
void sayHello()
{
cout << "Hello";
}
};
int main()
{
myClass* myPointer;
myClass myObject = myClass(* myPointer); // Cast pointer to object
myObject.sayHello();
return 0;
}
Tôi ngạc nhiên khi onlinegdb hoạt động với điều này, vì có nhiều vấn đề ở đây. Thứ nhất, myPointer là uninitialised - ở đâu là 'new myClass()'? Thứ hai, dòng được đánh dấu '// Truyền con trỏ tới đối tượng' làm như vậy và sau đó thực hiện một chuỗi sao chép. Xây dựng một myClass từ con trỏ uninitialised chưa được khai báo, và sau đó (tùy thuộc vào trình biên dịch) khi nó được gán cho myClass myObject. –
- 1. Làm cách nào để sử dụng con trỏ 'gốc' trong lớp tham chiếu trong C++/CLI?
- 2. Tham chiếu đến con trỏ
- 3. Trên con trỏ và tham chiếu C++, cần làm rõ
- 4. chuyển một con trỏ bằng tham chiếu trong C++
- 5. Làm cách nào để nhận các đối số tham chiếu và con trỏ trong Python + SWIG?
- 6. Tập thể dục: con trỏ và tham chiếu trong C++
- 7. Tham chiếu tham chiếu trong C++ mà không có con trỏ
- 8. Tham chiếu đến con trỏ và đa hình C++
- 9. Làm thế nào để thay đổi con trỏ từ con trỏ sang ngón tay bằng jQuery?
- 10. Có thể chuyển một tham chiếu đến một con trỏ từ Excel VBA sang C++ không?
- 11. Chuyển đổi từ con trỏ C++/CLI sang con trỏ C++ bản địa
- 12. Cách đặt tham chiếu con trỏ qua hàm
- 13. Con trỏ C++ (Vượt qua tham chiếu) Câu hỏi
- 14. chuyển đổi ẩn của con trỏ gián tiếp sang con trỏ mục tiêu-c bằng ARC
- 15. Làm cách nào để thay đổi biến mà tham chiếu C++ tham chiếu?
- 16. Python, làm cách nào để chuyển đối số sang tham số con trỏ hàm?
- 17. Con trỏ hàm C++ làm tham số
- 18. Sự khác biệt giữa const. con trỏ và tham chiếu?
- 19. tại sao không chuyển đổi ngầm từ con trỏ để tham khảo để con trỏ const
- 20. Tại sao con trỏ "này" trong C++ là một con trỏ chứ không phải là một tham chiếu?
- 21. Sự khác nhau giữa con trỏ trong C++ và kiểu tham chiếu trong C#
- 22. Con trỏ qua C++ bằng cách tham chiếu và gán giá trị mặc định
- 23. Chuyển đổi con trỏ void ** sang loại Java tương đương
- 24. Tại sao các loại tham chiếu con trỏ?
- 25. Băng qua con trỏ & Vượt qua tham chiếu
- 26. Làm cách nào để làm việc với con trỏ tới con trỏ tới cấu trúc trong C?
- 27. Làm cách nào để đọc cấu trúc con trỏ C++?
- 28. C++ qua các đối số bằng cách tham chiếu và con trỏ
- 29. Trong C++, có phải con trỏ như tham chiếu ô trong Bảng tính Excel không?
- 30. C++ 11 tham chiếu không sở hữu/con trỏ tới unique_ptr?
Tiêu đề này nói "đúc [sic] tham chiếu đến con trỏ" nhưng câu hỏi bắt đầu với một con trỏ và cần một tham chiếu. Đó là hướng nào? – MSalters
@MSalters phải là * chuyển đổi *. Tôi đang chỉnh sửa nó. Nhưng tôi đã tìm kiếm bất kỳ giải pháp tôi nhận được, vì vậy tôi đã đề cập * cast * – Dewsworld