我知道这可能听起来像一个奇怪的问题,但我只是想知道C++中的类是否比具有相同数据字段的结构更重要,并且有一件事我无法找到答案... 
考虑一下:
struct SomeStruct {
    int a;
    int b;
};
class SomeClass {
public:
    SomeClass():a(0),b(0){}
private:
    int a;
    int b;
};
int main() {
    std::cout<<sizeof(SomeStruct)<<std::endl; // output is 8
    std::cout<<sizeof(SomeClass)<<std::endl; // output is 8
}
但现在看看当我向SomeClass添加析构函数时会发生什么:
struct SomeStruct {
    int a;
    int b;
};
class SomeClass {
public:
    SomeClass():a(0),b(0){}
    virtual ~SomeClass(){}
private:
    int a;
    int b;
};
int main() {
    std::cout<<sizeof(SomeStruct)<<std::endl; // output is 8 bytes
    std::cout<<sizeof(SomeClass)<<std::endl; // output is 16 bytes!
}
为什么SomeClass需要8个字节用于析构函数?
| 归档时间: | 
 | 
| 查看次数: | 900 次 | 
| 最近记录: |