定义一个对象的时候 :
A a()这种写法在C++中是编译不过的,因为编译器无法区分你是声明一个方法还是在定义一个对象。所以形式上必须不加括号: A a 。
A a()这种写法在C++中是编译不过的,因为编译器无法区分你是声明一个方法还是在定义一个对象。所以形式上必须不加括号: A a 。
A a(arg) 这种是可以的,因为声明有参数的函数的形式和这个不一样。声明有参函数必须指定类型,所以是可以区分是在声明函数还是在定义对象。
说白了就是代码在编译的时候 语义上有歧义,算是一个小问题吧,想明白了就写出来。