gpt4 book ai didi

c++ - 在 C++ 中为友元函数定义默认参数的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:05 24 4
gpt4 key购买 nike

我想为友元函数指定一个默认值,如下:

friend Matrix rot90 (const Matrix& a, int k = 1);

当用 Xcode 5.1.1 编译这一行时,出现以下错误

./Matrix.hh:156:19: 错误:指定默认参数的友元声明必须是一个定义

修复它的正确方法是什么?

谢谢!

最佳答案

标准说 (§8.3.6):

If a friend declaration specifies a default argument expression, that declaration shall be a definition and shall be the only declaration of the function or function template in the translation unit.

也就是说,如果您在 friend 声明中指定了默认参数,那么您还必须立即在那里定义该函数。如果您不想这样做,请删除那里的默认参数并为指定默认参数的函数添加单独的声明。

// forward declarations:
class Matrix;
Matrix rot90 (const Matrix& a, int k = 1);

class Matrix {
friend Matrix rot90 (const Matrix&, int); //no default values here
};

关于c++ - 在 C++ 中为友元函数定义默认参数的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333949/

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