計劃沒有編制的原因很明顯:什麼0手段純虛函數如下
#include <iostream>
using namespace std;
class A {
public:
A() { pVirt(); }
virtual void pVirt() const = 0 { count<<"A::pVirt()"; }
};
int main() {
A aObj;
aObj.pVirt();
reutrn 0;
}
問題: 1.簽名0「虛擬無效pVirt()const的= 0」是什麼意思?是這表示在vtable中的NULL內存偏移量還是僅僅是一個語法約束?
- 如果0 NULL內存偏移(如果情況是這樣),那麼,爲什麼VC++不允許指定其他內存地址,這就是爲什麼我們不能從外部構造函數中調用純虛函數的原因(可能是因爲vtable是在完全構建完一個對象後創建的。)?
那麼在這裏阻止我們將其稱爲非純虛函數。 – null
@ajay這與你的問題有什麼關係? '= 0'的存在阻止了你:C++只是指定任何具有純虛函數的類都不能被實例化。 –
你忘了最重要的可能! '= 42;' –