ヘッダファイル内での配列の初期化について(C++)
以下のようにヘッダファイル(Topology.hpp)を作成しました.
クラス内でネットワークの隣接情報を格納する二次元配列Network[][]を定義し,その後配列の各値に,ノード間の距離を代入(Network[0][1]=593.3 ...)して初期化しようとしました.
しかし結果として値の代入部分の処理で以下のようなエラーが発生してしまいました.
この宣言にはストレージクラスまたは型指定子がありません.
ヘッダファイル内でこのように"配列に値を代入する"といった処理を行うことはそもそもできないのでしょうか.
最終的には,ヘッダファイル内でNetwork[][]の値を初期化し,それを外部のc++ファイルでインクルードすることによって,そのc++ファイル内からNetwork[][]にアクセスできるようにしたいと思っております.
おとなしくコンストラクタ内で値を代入する方が得策でしょうか.
よろしくお願いいたします.
c++
1#ifndef _TOPOLOGY_H 2#define _TOPOLOGY_H 3 4class CTopology { 5public: 6 CTopology() { ctor(); } //!< コンストラクタ 7 ~CTopology() { dtor(); } //!< デストラクタ 8 9 double Network[12][12] = {}; 10 11 //JPN12 12 Network[0][1] = 593.3; 13 Network[0][3] = 1256.4; 14 Network[1][2] = 351.8; 15 Network[2][3] = 47.4; 16 Network[2][6] = 366; 17 Network[3][5] = 250.7; 18 Network[5][4] = 252.2; 19 Network[5][6] = 250.8; 20 Network[6][7] = 186.6; 21 Network[4][7] = 263.8; 22 Network[6][9] = 490.7; 23 Network[7][8] = 341.6; 24 Network[8][9] = 66.2; 25 Network[8][10] = 280.7; 26 Network[9][11] = 1158.7; 27 Network[9][10] = 365; 28 Network[10][11] = 911.9; 29 Network[1][0] = 593.3; 30 Network[3][0] = 1256.4; 31 Network[2][1] = 351.8; 32 Network[3][2] = 47.4; 33 Network[6][2] = 366; 34 Network[5][3] = 250.7; 35 Network[4][5] = 252.2; 36 Network[6][5] = 250.8; 37 Network[7][6] = 186.6; 38 Network[7][4] = 263.8; 39 Network[9][6] = 490.7; 40 Network[8][7] = 341.6; 41 Network[9][8] = 66.2; 42 Network[10][8] = 280.7; 43 Network[11][9] = 1158.7; 44 Network[10][9] = 365; 45 Network[11][10] = 911.9; 46 47private: 48 virtual void ctor(void); //!< コンストラクタ処理 49 virtual void dtor(void); //!< デストラクタ処理 50 51}; 52 53#endif // _Topology_H

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。