【发布时间】:2015-08-10 01:58:24
【问题描述】:
我看到了以下类型的函数:
data_type *function_name(arguments...)
和:
data_type function_name(arguments...)
我正在尝试了解何时应该使用哪一个。为什么在下面的示例中这样做? (这是来自课程的教科书。)我什么时候应该编写这样的函数?
struct Tower
{
string name;
Tower *link;
};
Tower *createTower(string name, Tower *link);
有人可以进一步澄清这一点吗?
Tower* createTower(string name, Tower *link)
{
Tower* tp = new Tower;
tp->name = name;
tp->link = link;
return tp;
}
Tower* createBeconsOfGondor(){
Tower *tp = createTower("Rohan", NULL); // Points to nothing
tp = createTower("Halifiren", tp); // Still returns pointer?
}
createBeconsOfGondor()函数的第二行,那个函数的返回怎么还是一个指针?
【问题讨论】:
-
* 适用于它之前的事物(塔),而不是函数的名称。这个函数返回一个指向塔的指针。 (正如
struct Tower的第二个成员是一个指向 塔的指针。) -
一个返回指针,另一个不返回。
-
谢谢,有道理。
-
添加了后续问题