假设我有这个功能:
void my_test()
{
A a1 = A_factory_func();
A a2(A_factory_func());
double b1 = 0.5;
double b2(0.5);
A c1;
A c2 = A();
A c3(A());
}
Run Code Online (Sandbox Code Playgroud)
在每个分组中,这些陈述是否相同?或者在某些初始化中是否有额外的(可能是可优化的)副本?
我见过有人说过这两件事.请引用文字作为证据.还请添加其他案例.
简单问题:以下陈述是否相同?或者是第二个在幕后做更隐含的事情(如果是这样的话,是什么?)
myClass x(3);
myClass x = myClass(3);
Run Code Online (Sandbox Code Playgroud)
谢谢!
出于好奇心的简单问题.
类上的多个方法需要使用字符串流,或者特别是ostringstream.
1)将一个stringstream变量作为类成员,然后在使用它之前清除它,即msg.str("")
2)每次需要使用时,在每个方法中本地创建一个新的stringstream变量.
在效率和整洁方面,哪种方法最好?
我的预感是选项1,但不确定初始构造是否与每次调用str()相结合会更糟?
PS我读过初始化..哪一个效率更高?而这是更快/更有效?,我的下一步将是让我研究分析和编写一个小测试应用程序,但我觉得要求可能更快:-)