คำถามติดแท็ก return-by-reference

9
“ int & foo ()” ใน C ++ หมายความว่าอย่างไร
ในขณะที่อ่านคำอธิบายเกี่ยวกับ lvalues ​​และ rvalues ​​บรรทัดของโค้ดเหล่านี้ติดอยู่กับฉัน: int& foo(); foo() = 42; // OK, foo() is an lvalue ฉันลองใช้ใน g ++ แต่คอมไพเลอร์แจ้งว่า "undefined reference to foo ()" ถ้าฉันเพิ่ม int foo() { return 2; } int main() { int& foo(); foo() = 42; } มันรวบรวมดี แต่ใช้มันให้ความผิดส่วน เพียงแค่บรรทัด int& foo(); โดยตัวมันเองทั้งคอมไพล์และรันโดยไม่มีปัญหาใด ๆ รหัสนี้หมายถึงอะไร? คุณจะกำหนดค่าให้กับการเรียกใช้ฟังก์ชันได้อย่างไรและเหตุใดจึงไม่ใช่ค่า …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.