在我阅读C ++ Primer时,我遇到了这段代码
struct destination;
struct connection;
connection connect(destination*);
connection connect(destination*);
行做什么?如果它传递结构名称,它怎么编译好呢?您是不是应该将struct
初始化为变量然后将其传递给它?
struct destination;
struct connection;
destination dest;
connection connect(dest);
答案 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
初始化为变量,然后将其传递给它?
没有