(コメントで述べたように)配列からのみ読み取る場合は、を追加しconst
ます。
注意:値の変更を開始しないconst
場合、変更を開始すると、以下は期待どおりに機能しません。
以下は私がC++03で考えることができる最高のものです。すべてをヘッダーファイルに入れることはできますが、それは良い考えではないと思います。ヘッダーと実装ファイルを使用してそれを行う方法を示します。ヘッダーにすべてが本当に必要で、次のコードを適応させる方法がわからない場合は、質問してください。
まず、ヘッダーファイルを作成しますfoo.hpp
。
#ifndef FOO_HPP
#define FOO_HPP
#include <string>
class ExampleClass {
private:
const std::string (&array1)[5];
const double (&array2)[4];
const double (&array3)[4];
ExampleClass(); // you need ctors to initialize the non-static members
};
#endif // FOO_HPP
ヘッダーができたので、実装ファイルを作成しますfoo.cpp
。
#include "foo.hpp"
namespace
{
const std::string global_array1[5] = {"test1", "test2", "test3", "test4", "test5"};
const double global_array2[4] = {20.7, 26.4, 27.8, 31.1};
const double global_array3[4] = {19.1, 25.8, 27.3, 32.3};
}
// define your ctor(s)
ExampleClass::ExampleClass()
: array1( global_array1 ),
array2( global_array2 ),
array3( global_array3 )
{}