函数 f 在做什么?

Whats function f is doing?

本文关键字:什么 函数      更新时间:2023-10-16

下面是我试图弄清楚的代码。 在我调用以下构造函数或函数后,函数实际上在做什么?

我的查询是为什么我得到这种输出,更具体地说,为什么"调用的复制构造函数"被打印 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,实际上并没有在代码中执行任何操作,因为该值从未被使用过。