模板类的大小相等 我为C++编写了一个简单的树类的实现。在某个时刻,我问自己这个类使用了多少内存。所以我试着: cout << sizeof( tree<int> ) << " " << sizeof( tree<float> ) << " " << sizeof( tree<double> );
为什么总是有相同的大小,即使我指定了不同的类型 这是我的班级:模板类的大小相等 我为C++编写了一个简单的树类的实现。在某个时刻,我问自己这个类使用了多少内存。所以我试着: cout << sizeof( tree<int> ) << " " << sizeof( tree<float> ) << " " << sizeof( tree<double> );,c++,templates,tree,sizeof,C++,Templates,Tree,Sizeof,为什么总是有相同的大小,即使我指定了不同的类型 这是我的班级: template <typename T> class tree { private: T val; tree< T > *left; tree< T > *right; public: tree(); tree( T val ); ~tree(); }; 您正在64位系统上编译,其中指针的长度为8字节。它们还需要8字节对齐,以避免性能损失,因此编译器
template <typename T>
class tree
{
private:
T val;
tree< T > *left;
tree< T > *right;
public:
tree();
tree( T val );
~tree();
};
您正在64位系统上编译,其中指针的长度为8字节。它们还需要8字节对齐,以避免性能损失,因此编译器在val和left之间插入填充,以确保对齐
template <typename T>
class tree
{
private:
T val;
tree< T > *left;
tree< T > *right;
public:
tree();
tree( T val );
~tree();
};