struct anup1 {
int a;
};
void structpass_1(struct anup1 b) // accepting structure
{
cout << b.a;
};
void structpass_2(struct anup1& b) // accepting address of a structure
{
cout << b.a;
};
int main() {
struct anup1 a2;
a2.a = 100;
structpass_1(a2);
structpass_2(a2);
}
上面的代码给出了相同的输出...无论接受参数是结构体还是结构体的地址。
任何人都可以向我解释一下这种行为吗?
谢谢
最佳答案
它传递一个 reference构造函数的 anup1。
void structpass_2( struct anup1 &b)
看看什么是引用:reference
另外关键字struct
在函数参数列表中不是必须的,你可以这样写:
void structpass_1(anup1 b) // accepting structure
void structpass_2(const anup1& b) // accepting address of a structure
如果参数是只读的,则添加 const
限定符
关于c++ - 传递结构或类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408549/