在c++中,声明一个变量或者函数是怎么确定的,例如下面的代码:
class A;
A f();
可以理解为创建一个A类的f对象,使用默认构造函数。
还可以理解为声明一个返回为A 类型,传入参数为空的f函数。
这个貌似一般都不会出错,但是我用模板时编译器就把两者搞混了。
谁能解释一下这个语言规则到底是怎样?
f变成了成员函数了。 实际上,这种情况,C++会认为
f是函数,不信用sizeof(f),看看会不会报错,而且报的什么错。如果要创建对象,可以用A f = A(); 这样就会认为f是变量了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。