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(); โดยตัวมันเองทั้งคอมไพล์และรันโดยไม่มีปัญหาใด ๆ รหัสนี้หมายถึงอะไร? คุณจะกำหนดค่าให้กับการเรียกใช้ฟังก์ชันได้อย่างไรและเหตุใดจึงไม่ใช่ค่า …