jas*_*ton 3 c++ header-files redefinition
我有一个Object基类,我有几个派生类,名为Item,Person和Location.
因为每个都是从Object派生的,所以我需要在每个头文件中包含Object.h,并且我在main中包含了所有派生类.
因为我这样做我得到重新定义错误.
我想知道的是包含这些文件以避免此错误的正确方法是什么?
谢谢!
编辑:
object.h
using namespace std;
class Object{
string name;
string description;
public:
Object();
Object(string name, string description);
void set_name(string name);
void set_description(string description);
string get_name();
string get_description();
~Object();
};
Run Code Online (Sandbox Code Playgroud)
item.h
using namespace std;
#include "object.h"
class Item : public Object{
public:
Item();
Item(string name, string description);
};
Run Code Online (Sandbox Code Playgroud)
locale.h文件
using namespace std;
#include "object.h"
class Locale : public Object{
public:
Locale();
Locale(string name, string description);
};
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include <iostream>
#include <string>
#include "locale.h"
#include "item.h"
using namespace std;
int main(){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您应该在标题中添加包含警戒.这可以防止标题被包含两次.例如,在Object.h标题的顶部,你会放,
#ifndef _OBJECT_H
#define _OBJECT_H
Run Code Online (Sandbox Code Playgroud)
然后你结束标题,
#endif
Run Code Online (Sandbox Code Playgroud)
如果已包含标题#ifndef,#endif则删除之间的文本.
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |