Pertimbangkan kod C berikut:
<code class="cpp">class Instruction { public: virtual void execute() { } }; class Add: public Instruction { private: int a; int b; int c; public: Add(int x, int y, int z) {a=x;b=y;c=z;} void execute() { a = b + c; } };</code>
Dalam kelas berasingan:
<code class="cpp">void some_method() { vector<Instruction> v; Instruction* i = new Add(1,2,3) v.push_back(*i); }</code>
Dan dalam kelas lain:
<code class="cpp">void some_other_method() { Instruction ins = v.back(); ins.execute(); }</code>
Kelas ini berkongsi vektor Arahan. Walau bagaimanapun, kami menghadapi kebimbangan mengenai fungsi pelaksanaan. Adakah ia akan mengekalkan jenis Tambahnya?
Malangnya, ia tidak akan. vektor
Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan vektor
Atas ialah kandungan terperinci Adakah Penghirisan Objek Berlaku Apabila Menggunakan `vektor` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!