使用构造函数调用作为函数参数

Using constructor call as function parameter

使用构造函数调用作为参数是个好主意吗?例如。像

doSomething(ClassA(someConstructorParameter));

函数终止时对象会被销毁吗?或者,如果您有一个接受 char* 的函数并且您不希望它弄乱字符串,would

someFunction(string(str).c_str());

是个坏主意吗?

在函数 returns 之后的完整表达式结束时,临时对象将被销毁。所以只要函数不在某处存储指针或对参数的引用就可以了;稍后将无效。