c ++用struct指针初始化struct

时间:2017-05-02 19:24:36

标签: c++ struct

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

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

connection connect(destination*);行做什么?如果它传递结构名称,它怎么编译好呢?您是不是应该将struct初始化为变量然后将其传递给它?

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

1 个答案:

答案 0 :(得分:6)

  

connection connect(destination*);行做什么?

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

在此声明中,未为参数提供名称(虽然对读者没有特别帮助,但该名称有效)。据推测,当函数定义时会提供,如下所示:

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

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

函数声明在前面的六章中有所涉及。

  

即使它传递结构名称,它怎么编译好呢?

因为那是你在功能声明中应该做的事情。

  

您是否应该将struct初始化为变量,然后将其传递给它?

没有