私はいくつかのクラス(すなわちClassX
、ClassY
など)へのルーチンを提供していますライブラリ(MyLib.h
とMyLib.cpp
)をしました。 はMyLib.h
に私は#define
プリプロセッサディレクティブを使用して、2つの定数を定義している:私は、各文字列を使用したいところ設定したアクセス修飾子++の#define CONSTANT_NAME constant_value
#define LOCAL_STR "this string can not be shared among classes that don't #include "MyLib.h""
#define TOSHARE_STR "this string can be shared among classes that #include "MyLib.h""
両方の文字列値を示唆しています。私の考えでは、第1のものはMyLib.cpp
コードでのみ使用し、第2のものはClassX
,ClassY
などのコード内で使用する必要があります。
C++は、これらの2つの定数の望ましい可視性を定義する方法を提供しますか?現在、どこにでも表示されています...
クラスは、物事を#includeしていないIFDEFブロックをそれらを定義することができますいずれかのいくつかの共有のものが必要な場合は、翻訳単位で行います。 #defineは定数ではなく、テキスト置換ルールです – Caleth