我见过一个类是这样定义的类..
class StringChild : public StringBase
{
public:
//some non-virtual functions
static StringChild* CreateMe(int size);
private:
unsigned char iBuf[1];
};
静态工厂函数有以下实现..
return new(malloc(__builtin_offsetof(StringChild ,iBuf[size]))) StringChild();
据我了解,这个函数使用placement new 来扩展这个类。
这是否只是因为只有 1 个成员并且它是在堆上分配的?