gpt4 book ai didi

c++ - 如何使用成员函数从 main() 访问数组?

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:34 27 4
gpt4 key购买 nike

我有这个子类 Pirate.cpp,我希望它的 mov 函数从 main 访问一个数组。
这个数组基本上是 map (检查它是否已经有船,停靠并访问数组以将对象(海盗船)的位置从 map[1][1] 更改为 map [1][2].

这张 map 是一个海洋物体的二维数组,每个海洋物体可以用指针容纳一艘船。

Ship 是 pirate 的父类(在将 Pirate 插入到 Ship 指针之前,我将执行其他子类 dynamic_cast)。

我有一个错误代码:'Map' , 'Place' was not declared in this scope 我明白了。

那么基本上我该如何处理这个范围问题?有替代方法吗?

海盗.cpp

#include "pirate.h"
#include "Sea.h"

void Pirate::mov()
{
MAP[1][2]->(*place)=MAP[1][1]->(*place)
MAP[1][2]->(*place)=NULL
}

海.h

#ifndef SEA.H
#define SEA.H
#include "ship.h"

class Sea
{
private:
bool hasShip;
bool isDock;
protected:
Ship *place = NULL;
public:
bool gethasShip() const {return hasShip;}
bool getisDock() const {return isDock;}
void sethasShip(bool i) {hasShip = i;}
void setisDock(bool i) {isDock = i;}
};
#endif

主要

#include <iostream>
#include <vector>
#include <string>
#include "Ship.h"
#include "Sea.h"
#define SIZE 100

using std::cout;
using std::vector;

extern Sea Map[SIZE][SIZE];
int main()
{
Sea Map[SIZE][SIZE];
}

最佳答案

extern 进行声明而不是定义。它只是说在某处定义了对象。

您需要在您的 main.cpp 中包含 Sea Map[SIZE][SIZE]; 并且在其他文件中包含 extern Sea Map[SIZE][SIZE];您访问数组的位置。

关于c++ - 如何使用成员函数从 main() 访问数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26949511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com