#include<iostream>
using namespace std;
class A
{
public:
A(int x)
{
a=x;
}
int a;
};
void fun(A temp)
{
cout<<temp.a<<endl;
}
int main()
{
fun(1);
}
这里我们将原始值传递给fun方法并使用 A类的对象 任何人都可以解释我上面的代码如何工作和使用哪个概念?
答案 0 :(得分:0)
A类有一个构造函数,它接收一个整数作为参数。
因此,传递给fun的整数参数会自动转换为A.
在这个自动演员过程中,创建了一个A对象(称为temp),它的字段'a'用1初始化。
答案 1 :(得分:0)
我为您评论了代码并使其更清晰易读。 阅读(1) - &gt;中的评论。 (5)。
#include <iostream>
using namespace std;
class A {
public:
A(int x) // (3): gets called by f to initialize an object of class A with x=1
{
a = x;
}
int a;
};
void fun(A temp) // (2): Assumes 1 is a type class A. But it hasn't yet been initialized. So it calls Constructor. (tmp = new A(1))
{
// (4): Now temp is an object of class A
cout << temp.a << endl; // Prints temp.a
// (5): temp object is getting destroyed.
}
int main()
{
fun(1); // (1): Calls fun() with argument of 1
}