私はC++が新しく、クラス内の変数へのアクセスに問題があります。私がここまで読んできたことから、これまでグローバルを作成することは本当に悪い習慣でしたが、そうすることはできませんでしたが、クラスへのアクセスを他のどのように移動するかは分かりません。C++関数からクラスへのアクセスが定義されていません
これまでの検索では、クラス内で関数を設定して取得するように指示していましたが、オブジェクトが定義されているブロックでのみ使用できます。
基本的にmain()でクラスオブジェクトを定義し、main()のようなgameLoop()のような関数を呼び出すと、クラスオブジェクトをグローバルにすることなくその新しい関数の中でそのオブジェクトにアクセスできます。例えば
:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <string>
class Word
{
private:
string m_word;
int m_length;
public:
void set(string word, int length)
{
m_word = word;
m_length = length;
}
};
void gameLoop()
{
word1.set(); //flags error as it cant acces the word1 object
//I want to be able to access word1 from here
//Not a copy because that wouldnt change the actual word1
//I dont want to define it in here because then it would be created again
//for each loop of gameLoop
}
int main()
{
Word word1;
int play = 1;
while (play ==1){
gameLoop();
}
return 0;
}
これは、主に単純化したバージョンですが、私はクラスが外部に格納したいゲームの目的のためではなく、gameLoop内部のゲームプレイ機能の数のためにアクセスできるようにし、クラスオブジェクトを変更します。
引数 'gameLoop'に' word1'を渡します。 – Carcigenicate
パラメータとして 'gameLoop(word word)'を渡します。 – user463035818
おそらくリファレンスとして( 'gameLoop(Word&word)') – kim366