gpt4 book ai didi

c++ - 我们可以使用()代替{}作为函数范围吗?

转载 作者:行者123 更新时间:2023-12-02 10:08:00 28 4
gpt4 key购买 nike

这行是什么意思:

bool operator() (const song& s);

I am not able to understand that line with operator. Is operator some kind of keyword in c++?

最佳答案

Can we use () instead of {} for function scope?



不,我们不可以。 bool operator() (const song& s);是函数声明,而不是定义。它声明了一个特殊函数 operator()。整个 operator()是函数的名称。以下 (const song& s)是函数参数的列表。该函数的定义如下所示:
#include <iostream>

struct song {
char const* name;
};

struct A {
void operator()(const song& s) {
std::cout << "Received a song: " << s.name << '\n';
}
};

int main() {
A a;

// Here's one way you call that function:
a(song{"Song1"});

// Here's another way
a.operator()(song{"Song2"});
}

这称为运算符重载。您可以了解有关 here的更多信息。

关于c++ - 我们可以使用()代替{}作为函数范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223430/

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