&在函数的左侧(关于C ++语法)

& on left of function (regarding c++ syntax)

本文关键字:关于 语法 函数      更新时间:2023-10-16

我的问题很简单。我有一个函数需要在.cpp文件中实现。

原型:

const Location &getTop(void) const;

这在标题中。

当我试图为.cpp文件截取它时,我会把它做成这样:

const Location LocationStack::&getTop(void) const{
}

我得到错误:"&":'右侧的非法令牌::'如何修复此问题?我知道语法肯定是错误的。

此行

const Location &getTop(void) const;

声明了一个函数,该函数返回对CCD_ 2的CCD_。使用以下格式将不那么令人困惑:

const Location& getTop(void) const;

要修复编译错误,请尝试

const Location& LocationStack::getTop(void) const

应该是

const Location& LocationStack::getTop(void) const 
{
}

您可以将其解读为"对const Location对象的引用"

const Location &getTop(void) const;

返回类型始终位于变量名的左侧(在某些其他情况下除外)。函数的命名规则与变量相同——它们只能包含某些字符,&不是其中之一。

上面的返回类型实际上意味着对const Location对象的引用&指定对某一类型的引用。您可能已经看到此运算符用于获取对象的地址。这只是它的各种用途之一。

由于getTop是函数的名称,因此&不能应用于此。你应该这样定义它:

const Location& LocationStack::getTop(void) const {
}

其中返回类型保持不变,并且正确指定了函数的名称。