前提・実現したいこと
現在、コマンドプロンプトで複数の.h/.cppファイルに分けた上で簡単なゲームを作ろうとしていますが
player.hで宣言した変数の値をmap.cppで上手く共有できずに困っております。
初期値は共有できますが一旦playerで変更して、別のクラスで共有すると初期値をコピーしてきてしまいます。
どうすれば常に別クラスでも共有できるでしょうか?
最終的にはTest1::set()内のtest.set_numでnumの数値を[1]にして
Test2::get()内のget_numで先ほど入れた[1]をTest2内のnumに代入したいです。
ソースコード
C++
1//Study.cpp 2#include "Test1.h" 3#include "Test2.h" 4 5Test1 test1; 6Test2 test2; 7 8int main() 9{ 10 test1.get(); 11 test1.set(); 12 test2.get(); 13 14 return 0; 15} 16 17//Test1.cpp 18#include "Test1.h" 19#include <iostream> 20 21using namespace std; 22 23void Test1::get() 24{ 25 int num = 0; 26 num = test2.get_num(); //numに123456789を代入 27 cout << "Test1_num = " << num << endl; 28} 29 30void Test1::set() 31{ 32 int num = 1; 33 test2.set_num(num); //numに1を代入 34 cout << "Test1_num = " << num << endl; 35} 36 37//Test1.h 38#pragma once 39#include "Test2.h" 40 41class Test1 42{ 43public: 44 void get(); 45 void set(); 46private: 47 Test2 test2; 48}; 49 50//Test2.cpp 51#include "Test2.h" 52#include <iostream> 53 54using namespace std; 55 56void Test2::get() 57{ 58 num = get_num(); //numに1を代入(出来ていない) 59 cout << "Test2_num = " << num << endl; 60} 61 62//Test2.h 63#pragma once 64 65class Test2 66{ 67public: 68 void get(); 69 int get_num() { return num; } 70 void set_num(int _num) { num = _num; } 71private: 72 int num = 123456789; 73};
回答2件
あなたの回答
tips
プレビュー