當我具有std::string
一個去,我決定執行以下操作:C++ - 的std :: string ::〜串()串仍可以被打印爲空值
int main(int argc, char **argv)
{
std::string s = "Hello World";
s.~basic_string();
std::cout << s.c_str();
}
然而,它打印什麼也沒有,並且沒有垃圾。然而,在我的basic_string
類,當析構函數被調用時,我得到垃圾。 std::string
如何處理這個問題? Mine使用allocator
和construct
s,destroy
s,allocate
s和deallocate
s,但它仍然不起作用。
注:我不是在尋找一個解決方案,以我類,但要找出std::string
是怎麼做的。
你知道這是違法的,對嗎? – jrok
@jrok - 然後呢? – Joseph
未定義的行爲!你剛剛 – Paranaix