首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用无参构造结构体对象后无法调用结构体函数?解决办法

2012-09-22 
用无参构造结构体对象后无法调用结构体函数?声明以下结构体:C/C++ codestruct Foo{Foo(int){}Foo(){}void

用无参构造结构体对象后无法调用结构体函数?
声明以下结构体:

C/C++ code
struct Foo{        Foo(int){}    Foo(){}    void fun(){}};

用如下方式调用报错:
C/C++ code
    Foo a(10);    a.fun();    Foo b();    b.fun();//error: request for member ‘fun’ in ‘b’, which is of non-class type ‘Foo ()()’


改成这样就可以了
C/C++ code
    Foo a(10);    a.fun();    Foo b;    b.fun();


这是为什么呢?
什么原理呢?


[解决办法]
加了括号,里边没内容会被编译器认为是函数声明
C/C++ code
Foo b(); 

热点排行
Bad Request.