c++ - 传递结构或类对象

标签 c++

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/

相关文章:

c++ - 包含 jsonCpp header 的问题

c++ - 如何知道 Tar 解析器里面的文件

c++ - 使用 Boost 对具有 const 成员的类进行序列化

c++ - "SSE 4.2 insanity"提案文件中的 "if consteval"是什么意思?

c++ - 如何测量一个线程的执行时间?

c++ - C++ 编辑并继续功能是否可用于 VC++ 以外的任何东西?

c# - opencv 面部 sdk 支持

c++ - Oracle Golden Gate 用户导出 - EXIT_CALL_PROCESS_RECORD 未通过

c++迭代具有可变方向的 vector

c++ - 多线程C++ dll全局变量导致崩溃