Cpp中的构造函数和变量声明

时间:2016-05-02 15:41:11

标签: c++ constructor variable-declaration

#include<bits/stdc++.h>
using namespace std;

class A{
    int x;

public:
    A(){
        x=10;
    }

    void show(){
        cout<<x<<endl;
    }
};

main(){

    A a;
    a.show();

}

main()函数中,当我以上述方式声明变量a时,代码工作正常但如果我们声明变量A a()编译器会出错。为什么会这样?我认为参数类型匹配没有问题。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

因为A a()不是变量声明而是函数原型声明。

答案 1 :(得分:0)

C ++ 11及更高版本通过通用初始值设定项解决了这个问题。您正在声明一个返回A的函数。如果您改为使用{},它将起作用:

A a{};