C++错误学习之类和对象
隔了一段时间没写C++代码了,今天凭直觉写了一段代码,结果出了很奇怪的错误,看来基础不够扎实啊!
Code
|
|
Error
|
|
Analysis
第一条错误提示:C++禁止没有类型声明的函数f,指的是A::f()
第二条错误提示: 在类A中没有int A::f()函数的原型
第三条错误提示: 可能的候选原型是void A::f()
首先,说一下,当时为什么会写出这样的代码,其实都是一个原因:误把类当成对象
当时自己的思维模式具体是这样的:
123456class A{public: int i; void f();};
认为上面的代码definition(定义)了一个类,其实只是declaration(声明)了一个类. 但是好像f()函数又没有具体的函数体,因此有: 1234A::f(){....}
其实只有在函数前加void就可以解决错误一,因为我们这里是在定义一个函数.
接着使用i,把A当成对象.因此有: 1A.i
其实是可以直接使用i或A::i来替换A.i就可以解决错误二
Summary
第一:写程序一定要有严格的思维模式
第二:分清楚类的声明和定义
第三:分清楚类和对象的区别(这儿有很多区别,以后碰到了再说)
第四:类使用 :: 获取成员;对象使用 . 获取成员