C++ ()左侧c+上的运算符重载+;
我有一个重载()运算符的类:C++ ()左侧c+上的运算符重载+;,c++,C++,我有一个重载()运算符的类: class Animal { public: string sound; Animal (string a): sound(a) {} void operator()() { cout<<sound<<endl; } }; int main() { Animal dog("hau hau"); dog(); } 我知道我可能永远都不需要这个,但我只是好奇它是否可能不,因为在()之前必须有
class Animal
{
public:
string sound;
Animal (string a): sound(a) {}
void operator()()
{
cout<<sound<<endl;
}
};
int main()
{
Animal dog("hau hau");
dog();
}
我知道我可能永远都不需要这个,但我只是好奇它是否可能不,因为在
()
之前必须有一个主表达式
还请记住,编译器会将其向后读取,因此他不会知道这应该是一个函数。否。这是不可能的。不是以理智、安全、符合标准的方式不,你不能这样做:在C++中,对于这样的构造没有语法。 重载
操作符()
的目的是让类的对象参与函数调用表达式,其中对象表示被调用的函数。C++没有调用函数的语法,否则括号就在主表达式前面(在你的情况下是标识符),所以你的问题的答案是“否”。
()
仅用于铸造()dog;