【发布时间】:2011-08-12 19:36:50
【问题描述】:
请帮助我清除以下问题的概念: (在linux,gcc上执行和测试)
问题一:
在下面的简单示例中,A a() 到底是什么意思?
我发现这不是默认构造函数的定义,而是a()是一个返回类型为A的函数。
如果是正确的,那么为什么这段代码没有给我任何链接器错误或运行时错误。这段代码运行和链接顺畅,就好像它知道函数 a() 的定义一样。
class A
{
public:
void print()
{
printf("In class A\n");
}
};
int
main()
{
A a();
//a.fun(); //throws error "request for member ‘fun’ in ‘a’, which is of type ‘A()’"
}
问题 2。
在以下代码中,数组 b 的定义会引发错误。 我无法找到这种行为的确切原因。
int a[]={3,4,21,5,7,86};
int b[a[3]]; //this throws error why???
int
main() { ... }
【问题讨论】:
标签: c++ arrays function constructor