假设有两个类,它们相互需要:容器 and item。
班上容器创建类的实例item。类的每个实例item持有类的一个实例容器并且只需要调用该方法按项目调用的方法班级的容器. Class 容器需要查看类的所有字段item.
问题是前向声明:我想在其中有一个前向声明item.h,这样班级item可以有一个容器作为字段并调用方法按项目调用的方法。我怎么做?
Class 容器,它创建项目。
// container.h
#ifndef CONTAINER_H
#define CONTAINER_H
#include "item.h"
class container{
public:
item * create_item();
void method_called_by_item(item * i);
};
#endif //CONTAINER_H
实施:
// container.cpp
#include "container.h"
item * container::create_item(){
return new item(this);
}
void container::method_called_by_item(item * i){
// do stuff with item
}
班上item,需要调用其中一种方法容器:
// item.h
#ifndef ITEM_H
#define ITEM_H
#include <iostream>
class container;
class item{
public:
item(container * c);
void do_something();
container * c;
};
#endif //ITEM_H
实施:
// item.cpp
#include "item.h"
item::item(container * c){
this->c = c;
}
void item::do_something(){
this->c->method_called_by_item(this);
}
在容器.h中
class item; // do not include the item.h
在容器.cpp中
#include "item.h"
在项目.h中
class container; // do not include container.h
在项目.cpp中
#include "container.h"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)