c++ c++-faq copy-constructor assignment-operator rule-of-three
在C++中通常用某种前缀命名成员变量来表示它们是成员变量而不是局部变量或参数.如果你来自MFC背景,你可能会使用m_foo.我myFoo偶尔也见过.
C#(或者可能只是.NET)似乎建议只使用下划线,如_foo.这是否允许C++标准?
假设我有这个功能:
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(const MyClass&);
Run Code Online (Sandbox Code Playgroud)
和=运算符重载
MyClass& operator = (const MyClass&);
Run Code Online (Sandbox Code Playgroud)
有几乎相同的代码,相同的参数,只有不同的返回,是否有可能有一个共同的功能,他们都使用?