2
ฟังก์ชันที่มีชื่อเดียวกัน แต่มีลายเซ็นต่างกันในคลาสที่ได้รับ
ฉันมีฟังก์ชันที่มีชื่อเดียวกัน แต่มีลายเซ็นต่างกันในคลาสพื้นฐานและคลาสที่ได้รับ เมื่อฉันพยายามใช้ฟังก์ชันของคลาสพื้นฐานในคลาสอื่นที่สืบทอดมาจากที่ได้รับมาฉันได้รับข้อผิดพลาด ดูรหัสต่อไปนี้: class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { public: void bar() { string s; foo(s); } }; ฉันได้รับข้อผิดพลาดต่อไปนี้จากคอมไพเลอร์ gcc: In member function `void C::bar()': no matching function for call …