hur.cn - 华软网

 热门搜索

编译报错 undefined reference

  作者:未知    来源:网络    更新时间:2011/6/10
一个叫 Component 的class

C++">//情况1,没有Component.cpp,光有一个Component.h,构造函数定义在其中
class Component {
public:
  Component() {}
...
};

这样就会报
undefined reference to `Component::Component()'

如果改成这样就ok
C++">//情况2,同时又Component.cpp和Component.h,构造函数定义在cpp中

//file Component.h
class Component {
public:
  Component();
...
};

//file Component.cpp
#include "Component.h"
Component::Component() {
}



如果同时在h和cpp里都定义构造函数,又会出现重复定义的错误
redefinition of 'Component::Component()'
C++">//情况3,同时在cpp和h中定义构造函数

//file Component.h
class Component {
public:
  Component() {}
...
};

//file Component.cpp
#include "Component.h"
Component::Component() {
}


请问为什么情况1会报错?就是只在.h里定义构造函数。

---华软 网友回答---
有什么意义啊
---华软网友回复---
感觉理论上第一种情况也应该是对的,为什么会报错      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。