このように定義されたクラスであるクラスを見てきました..
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();
私が理解している限り、この関数は新しい配置を使用してこのクラスを拡張しています。
メンバーが1つしかなく、ヒープに割り当てられているため、これは安全ですか?