7
ทำไมเราไม่สามารถประกาศ std :: vector <AbstractClass>
หลังจากใช้เวลาในการพัฒนา C # อยู่พอสมควรฉันสังเกตเห็นว่าหากคุณประกาศคลาสนามธรรมเพื่อใช้เป็นอินเทอร์เฟซคุณจะไม่สามารถสร้างอินสแตนซ์เวกเตอร์ของคลาสนามธรรมนี้เพื่อเก็บอินสแตนซ์ของคลาสเด็กได้ #pragma once #include <iostream> #include <vector> using namespace std; class IFunnyInterface { public: virtual void IamFunny() = 0; }; class FunnyImpl: IFunnyInterface { public: virtual void IamFunny() { cout << "<INSERT JOKE HERE>"; } }; class FunnyContainer { private: std::vector <IFunnyInterface> funnyItems; }; บรรทัดที่ประกาศเวกเตอร์ของคลาสนามธรรมทำให้เกิดข้อผิดพลาดนี้ใน MS VS2005: …
89
c++
stl
abstract-class