我在c++中有以下代码。
string getName()
{
return "C++";
}
void printName(const char* name)
{
cout << name << endl;
}
int main()
{
printName(getName().c_str());
}
函数
getName
返回string
。我正在将c_str
的string
指针传递给printName
函数。我想知道在调用string
函数之前是否删除了返回的printName()
。如果不是,则删除返回值的时间。 最佳答案
完整表达后temporary将被销毁。
包括执行getName()
的完整表达式后,由printName()
创建的临时文件将被销毁,从c_str
获取的指针在printName()
内部仍然有效。