我是指针的新手,我在访问类中的变量时遇到了麻烦。
我想在国际象棋游戏中创建一个可能的移动数据库,我认为使用指针是要走的路,因为我不会浪费内存并防止任何不必要的内存错误。
的main.cpp
#include <iostream>
#include "moves.h"
using namespace std;
int main()
{
moves* possibleMoves[100];
&(possibleMoves[0]->piece) = 100;
cout << *&possibleMoves[0]->piece << endl;
return 0;
}
moves.h
#ifndef MOVES_H
#define MOVES_H
class moves
{
public:
moves();
int piece;
int X;
int Y;
int addX;
int addY;
int score;
};
#endif // MOVES_H
任何帮助将不胜感激。非常感谢你提前。
目前它没有输出任何内容,我也不知道该怎么做。
答案 0 :(得分:1)
我在访问类
中的变量时遇到了麻烦
看起来你正在制作一堆乱七八糟的指针和参考文献。
您的代码中并没有真正需要使用指针数组。而是使用正常的对象数组。
LoginPopup
顺便说一下,类moves possibleMoves[100];
possibleMoves[0].piece = 100;
cout << possibleMoves[0].piece << endl;
错误地将所有数据成员公开给公众 - 它们应该是私有的。并且需要实现moves
构造函数,否则应删除它以使用默认构造函数。
答案 1 :(得分:0)
您正在创建一个指针数组:
moves* possibleMoves[100];
当你想要的是一个moves
的数组。
然后,您尝试将piece
possibleMoves[0]
的值100
分配给 &(possibleMoves[0]->piece) = 100;
:
&
但实际上你正在做一些完全不同的事情。正如@Henri Menke所说,最好阅读*
,.
,->
和int main()
{
moves possibleMoves[100];
possibleMoves[0].piece = 100;
cout << possibleMoves[0].piece << endl;
return 0;
}
。
要使您的代码正常工作,请尝试:
moves
在这里创建一个piece
个对象数组,然后在对象0中为cout
赋值为100.您可以检索该值并将其打印到@NSManaged
。