-3

私はC++が初めてで、奇妙な問題に悩まされています。common.h に #define があります。

 #define TEXT_VALUE "Alpha"

program.cpp内のメソッドで、同じものにアクセスして、以下のようなことをしたい

 #include common.h

 void TestProgram::TestProgram(){
   std::string test_value = TEXT_VALUE;

   if(test_value.empty()) {//check during compile time if not set then set to default
      test_value = "Beta";
   }
 }

ただし、生成された実行可能ファイルでは、test_value は常に「ベータ」として設定されます... common.h には #define がありますが....

上記が正しい方法ではない場合...他の選択肢はありますか?

コードは MAC では正常に動作しますが、Visual Studio 2005 を使用している Windows では動作しません (アップグレードできません:-( )

4

2 に答える 2

0
#include <iostream>
#include "common.h"
std::string test_value = TEXT_VALUE;
using namespace std;
int main(int argc, char const *argv[])
{
    if(test_value.empty()) 
    {//check during compile time if not set then set to default
           test_value = "Beta";
    }
    cout<<test_value;
    return 0;
}

上記のコードは私にとってはうまくいきます。

于 2013-08-12T11:45:16.953 に答える