函数 f 在做什么?
Whats function f is doing?
下面是我试图弄清楚的代码。 在我调用以下构造函数或函数后,函数实际上在做什么?
我的查询是为什么我得到这种输出,更具体地说,为什么"调用的复制构造函数"被打印 2 次。请解释这段代码的背景。
class a {
public:
a() //default constructor
{
cout<<endl<<"default constructor called";
}
a(const a &o)// parameterized constructor
{
cout<<endl<<"Copy constructor called";
}
a f(a o)// function of some kind i'm not getting
{
return o;
}
}
调用的构造函数和函数:
a (o1);
a o2(o1);
o1.f(o2); // correction : o2 as parameter in place of o1
输出:
调用的默认构造函数
复制构造函数调用
复制构造函数调用
复制构造函数调用
我相信f 接受类型 a 的对象然后返回它,它对对象没有任何作用,只是浪费时间。
其他两个函数除了输出这些字符串外不执行任何操作。
o1.f(o1( 只返回 o1,实际上并没有在代码中执行任何操作,因为该值从未被使用过。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 什么时候调用析构函数
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 是什么让放置新调用对象的构造函数?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 在C 中,对2D数组的增量是什么?函数断言(0)做什么?
- 我应该使用什么函数签名来返回对可能不存在的对象的引用
- 一个类的构造函数,为另一个类进行强制转换.将调用什么函数
- 在 opencv for c 中,什么函数与 Mat::convertTo 和 cvtColor() 完全相同
- 当按下Alt-Enter键时调用什么函数
- C库导出什么函数?
- 使用什么函数来选择文本
- c++在空类中编写和调用什么函数?
- 在共享库的构造函数(_init部分)中,如何知道什么函数被中断了?
- 我可以用什么函数来获取按钮的把手