class abstr{ //抽象类
public:
virtual void test() = 0; //pure virtual函数
};
cout << sizeof(abstr) << endl;//成功编译,输出4
虽然抽象类abstr不能被实例化,但是这仅仅是[程序级别]的限制,编译器还是会把此抽象类转换成一个struct,里面仅仅包含一个vptr,所以可以对class abstr进行sizeof操作,成功编译且正确输出。
class abstr{ //抽象类
public:
virtual void test() = 0; //pure virtual函数
};
cout << sizeof(abstr) << endl;//成功编译,输出4
虽然抽象类abstr不能被实例化,但是这仅仅是[程序级别]的限制,编译器还是会把此抽象类转换成一个struct,里面仅仅包含一个vptr,所以可以对class abstr进行sizeof操作,成功编译且正确输出。