今天偶然用到string, 发现string的析构函数特别奇怪, 直接调用居然报错, 代码如下 :
int main(int argc, char* argv[]) {
std::string x = "123";
x.~string();
return 0;
}
这是报错信息 :
/Users/zhangzhimin/ClionProjects/geek/main.cpp:16:8: error: identifier 'string' in object destruction expression does not name a type
x.~string();
求解答.
楼上搞笑的?
正解是std::string这个东东实际只是
std::basic_string<char>
的typedef,所以如果你要调它的析构函数才对:另外你这string又不是new出来的,没必要调析构