Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คำถามสัมภาษณ์ C++ เรื่อง Virtual Function และ Abstract Class

Virtual Function คืออะไร?

Virtual function เป็นเมธอดที่ไม่มีการกำหนดคำจำกัดความ (definition) เมื่อถูกกำหนดในคลาสฐาน (base class) เมธอดนี้ถูกเว้นว่างไว้ในคลาสผู้ปกครอง และจะถูกกำหนดคำจำกัดความใหม่ (redefined) ในคลาสลูก (child class)

Abstract Class คืออะไร?

Abstract class คือคลาสที่มีสมาชิกแอブストรักต์ (abstract members) หรือมี pure virtual function อย่างน้อยหนึ่งตัวในคำจำกัดความของมัน Abstract class ไม่สามารถสร้างอินสแตนซ์ (creating an object) ได้เลย สามารถสืบทอด (inherit) ได้เท่านั้น และเมธอดสามารถถูกเขียนทับ (overwritten) ได้

สามารถมี Virtual Destructors ได้ไหม?

ได้ นี่ถูกต้องใน C++ แต่ destructors เหล่านี้เป็นสำหรับ base class ไม่ใช่ child class

ทุก Virtual Function ต้องถูก Override ไหม?

ไม่จำเป็นต้อง override virtual function ทุกตัว เสมอไป สามารถใช้งานได้ตามที่อยู่ใน base class

Constructor สามารถเป็น Virtual ได้ไหม?

Constructor ไม่สามารถเป็น virtual ได้ เพราะมันต้องถูกกำหนดคำจำกัดความในคลาส