C :关于对象的一个小问题

C++: a small issue about object

本文关键字:一个 问题 对象 于对象      更新时间:2023-10-16

我有以下类:

class aClass {
public:
    aClass():a(0){}
    void print(){cout<<a<<endl;}
private:
    int a;
};

在main()函数中,我意外地创建了这样的对象:

aClass obj();

我认为编译器会丢弃错误,因为预计会调用默认复制构造函数,但是BRACKET()内部没有参数。有趣的是,根本没有错误。因此,我尝试通过致电:

来访问成员函数
obj.print();

现在引发此错误:

request for member 'print' in 'obj', which is of non-class type 'aClass()'

有人可以向我解释吗?什么是创建的 obj()

aClass obj();

这是不是由IT默认构造函数创建的类Aclass的实例。

它是函数原型的功能,没有参数并返回aclass。

这是函数声明。

该语言允许在其他功能中声明函数;效果是在周围的名称空间中声明功能,但仅使声明范围内可用。