繁体   English   中英

C ++使用结构指针初始化结构

[英]c++ initializing struct with struct pointer

在阅读C ++ Primer时,我遇到了这段代码

struct destination;
struct connection;
connection connect(destination*);

connection connect(destination*);是什么connection connect(destination*); 行吗? 以及即使传递了结构名称,它怎么也可以正常编译? 您不是应该将struct初始化为变量,然后像这样传递吗?

struct destination;
struct connection;
destination dest;
connection connect(dest);

connection connect(destination*);是什么connection connect(destination*); 行吗?

它声明了一个名为connect的函数,该函数接受destination*并返回connection

在此声明中,没有为参数提供名称(尽管对读者没有特别帮助,但该名称是有效的)。 大概是在定义函数时提供的,就像这样:

connection connect(destination* ptr)
{
   connection conn;
   // do something with conn and ptr
   return conn;
};

本书的其余代码片段(您未引用的部分)显示了从另一个名为f的函数中对connect函数的调用。

函数声明在前六章中进行了介绍。

即使传递了结构名称,它怎么也可以正常编译?

因为那是您应该在函数声明中执行的操作。

您不是应该将struct初始化为变量,然后像这样传递吗?

没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM