gpt4 book ai didi

c++ - 为什么我会收到此错误, 'method' 的左边必须有类/结构/union ?

转载 作者:行者123 更新时间:2023-11-30 03:02:55 25 4
gpt4 key购买 nike

我正在构建三个类,Maze、MazeRow 和 MazePoints,以容纳迷宫结构,但我在为 MazeRows 设置 vector 时遇到了问题。以下代码来 self 的 Maze 类代码。我已经包含了我的 MazeRow 头文件。我在调用 vector 方法的每个地方都收到 3 个错误。另外 myMazeRows 是 Maze 类的私有(private)成员变量

//Maze Header File    
#include "MazeRow.h"
#include <vector>
using namespace std;
namespace MazeSolver
{

class Maze
{
public:
Maze(int rows, int columns);
MazeRow * getRow(int row);
private:
vector<MazeRow> myMazeRows();

 //Maze Implementation File
#include "stdafx.h"
#include "Maze.h"
#include <vector>
using namespace std;
using namespace MazeSolver;


Maze::Maze(int rows, int columns)
{
//Recieving the Compile Error (C2228)
myMazeRows.resize(rows);

//Initializing Each Row
for(int i=0; i< rows;i++) //Recieving the Compile Error ( C2228 )
myMazeRows.push_back(MazeRow(i,columns));
}

MazeRow* Maze::getRow(int row)
{
//Recieving the Compile Error (C2228)
return &myMazeRows.at(row);
}

//Maze Row Header File
class MazeRow
{

public:
MazeRow(int rowNum, vector<MazePoint>);
MazeRow(int rowNum, int mazPoints);

最佳答案

Maze::GetRow() 至少有一个错误应该是:

MazeRow*       Maze::getRow(int row)  
{
return &myMazeRows.at(row); // note the change from * to &
}

另一个可能是您在 Maze 构造函数中的循环是 i<rows-1 -- 最有可能应该是 i<rows .这不会导致编译错误,但会导致运行时问题。

关于c++ - 为什么我会收到此错误, 'method' 的左边必须有类/结构/union ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815657/

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