Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 类和函数返回类型混淆的实例_C++_Class_Function Prototypes - Fatal编程技术网

C++ 类和函数返回类型混淆的实例

C++ 类和函数返回类型混淆的实例,c++,class,function-prototypes,C++,Class,Function Prototypes,我不能这样做: class A { public: A() { } }; A a1(); 因为a1()看起来像一个函数原型 但我可以做到: class B { public: B(std::string argument) { std::cout << argument; } }; B b1("Text"); B类 { 公众: B(标准::字符串参数) { std::cout就是这样,它被称为最

我不能这样做:

class A
{
    public:
    A()
    {
    }

};

A a1();
因为
a1()看起来像一个函数原型

但我可以做到:

class B
{
    public:
    B(std::string argument)
    {
        std::cout << argument;
    }
};

B b1("Text");
B类
{
公众:
B(标准::字符串参数)
{

std::cout就是这样,它被称为最麻烦的解析。原因是如果
a1();
被视为对象声明,您将无法使用该原型声明函数。您希望能够声明函数,对吗


bb1(“Text”);
之所以有效,是因为它不能被视为函数原型,例如,
bb1(a())
can and will.

这不是一个令人烦恼的解析,但不是最令人烦恼的解析吗?+1我通常不会对一个明显重复的答案投赞成票,但你的第一段很好:)@LightnessRacesinOrbit它的表述方式与大多数不一样,这就是我回答的原因(我最近一直在放一些明显的答案)。这被称为最麻烦的解析,它已经在堆栈溢出上得到了很好的介绍。请参阅链接的副本,以及右侧的“相关”侧栏。