gpt4 book ai didi

C++ 运算符附加类声明

转载 作者:行者123 更新时间:2023-11-28 02:40:50 24 4
gpt4 key购买 nike

在我的 .h 中有

const CResultats & operator = (const CResultats & desResultats);

当我写这篇文章时:

CResultats CResultats :: operator = (const CResultats & desResultats) const
{
}

为什么它不起作用?我是 C++ 的新手...抱歉,如果它很愚蠢。

最佳答案

这个:

const CResultats & operator = (const CResultats & desResultats);

是一个函数的声明,它通过 const-reference 接受一个 CResultats,并通过 const-reference 返回一个 CRFesultats。该方法本身不是 const

但是这个:

CResultats CResultats :: operator = (const CResultats & desResultats) const

const 函数的函数定义,该函数通过 const 引用获取 CResultats,并按值返回 CResultats

这是两种不同的东西:

  1. 您将函数声明为按常量引用返回,但您将其定义为按值返回。
  2. 您将函数声明为非常量,但将其定义为常量。

如果要定义与声明相匹配,则必须将定义更改为:

const CResultats & CResultats::operator = (const CResultats & desResultats)
{
// ...
}

关于C++ 运算符附加类声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26060962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com