构造函数之无参构造函数

首先看一段代码:

#include<iostream>
using namespace std;

struct Foo
{
    Foo() {}
    Foo(int) {}
    void fun(){}
};


int main()
{
    Foo a(10);
    a.fun();
    Foo b();
    b.fun();
    return 0;
}

运行以后会报错:
error: request for member ‘fun’ in ‘b’, which is of non-class type ‘Foo()’

原因:Foo b()只是一个函数的申明,返回值为Foo类型,而不是调用无参构造函数,正确声明一个无参构造函数的方法是Foo b。

猜你喜欢

转载自blog.csdn.net/u014303647/article/details/80309587