C’类’类型重新定义
发布时间:2020-12-16 03:46:27 所属栏目:百科 来源:网络整理
导读:我第一次尝试使用c语言中的类.我的圈子类和相关的头文件工作正常,然后我移动了一些文件,然后继续得到我在下面显示的错误. c:circleobje.cpp(3): error C2011: 'CircleObje' : 'class' type redefinitionc:circleobje.h(4) : see declaration of 'CircleObj
我第一次尝试使用c语言中的类.我的圈子类和相关的头文件工作正常,然后我移动了一些文件,然后继续得到我在下面显示的错误.
c:circleobje.cpp(3): error C2011: 'CircleObje' : 'class' type redefinition c:circleobje.h(4) : see declaration of 'CircleObje' CircleObje.h #ifndef CircleObje_H #define CircleObje_H class CircleObje { public: void setCol(float r,float g,float b); void setCoord(int x,int y); float getR(); float getG(); float getB(); int getX(); int getY(); }; #endif CircleObje.cpp #include "CircleObje.h" class CircleObje { float rVal,gVal,bVal; int xCor,yCor; public: void setCol(float r,float b) { rVal = r; gVal = g; bVal = b; } void setCoord(int x,int y) { xCor = x; yCor = y; } ... }; 我没有复制所有.cpp函数,因为我认为它们不相关.在移动文件位置之前,这些文件没有问题.即使重命名后我仍然有与上面相同的错误.有什么想法来解决这个问题吗? 解决方法
问题是你正在编译器告诉你两次定义类.在cpp中,您应该提供函数的定义,如下所示:
MyClass::MyClass() { //my constructor } 要么 void MyClass::foo() { //foos implementation } 所以你的cpp应该是这样的: void CirleObje::setCol(float r,float b) { rVal = r; gVal = g; bVal = b; } void CircleObje::setCoord(int x,int y) { xCor = x; yCor = y; } ... 并且所有类变量都应该在类的.h文件中定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |