【发布时间】:2014-06-07 13:08:52
【问题描述】:
世界.cpp:
World::World() {
//something
}
World::~World() {
//something
}
void World::doSomething(Organism *organisms[20][20]) {
cout << organisms[1][1]->Key(); // example of what I need to do here
}
int main() {
World *world = new World();
World::doSomething(world->organisms);
return 0;
}
世界.h
class World {
public:
static void doSomething(Organism *organisms[20][20]);
World();
~World();
Organism *organisms[20][20];
};
有机体.cpp
Organism::Organism(){
}
Organism::~Organism(){
}
char Organism::Key(){
return this->key;
}
有机体.h
class Organism {
public:
Organism();
~Organism();
// ...
char Key();
protected:
char key;
// ...
};
我需要制造类似机器的东西,创造动物。上面的代码效果很好,让你知道:数组有机体是一个指向有机体类型的特定有机体的指针数组,每个有机体都包含它的 char 键值。 我的问题是我需要将 Organism *organisms 数组设为受保护或私有而不是公开。然后开始出现问题。
我有一个错误,我无法访问在 World.cpp 文件中使用 doSomething(带下划线的有机体)在 World 中声明的受保护成员。
我尝试使用朋友等,但没有一种方法奏效。知道如何从 main 访问这个数组吗? (函数参数可以更改,数组需要保护/私有)有什么简单的方法可以做到这一点吗?
感谢您的帮助
【问题讨论】:
标签: c++ arrays class private protected