• 締切済み

C++Builderの警告

Chart1->Series[0]->Clear(); グラフのコンポーネントを上記のようにして、書き直しの初期化を行うと、以下の警告が出ます。 [C++警告]TEST.cpp(138):W8006 'TColor'を'const int'で初期化している。 動作上は問題ないのですが、警告の意図は何なのでしょう? よろしく御願いいたします。

  • teo98
  • お礼率27% (68/244)

みんなの回答

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

手元にC++Builderがないので、自信ないのですが、 単純に、型が違うからではないでしょうか? キャストする直ったりしませんか?

teo98
質問者

補足

だと、何で初期化すれば良いのでしょう?

関連するQ&A

  • Borland C++ Compiler 5.5の警告について

    Borland C++ Compiler 5.5を使用してコンパイルしているのですが、 下記のソースをコンパイルするとエラーがでます。 #include <stdio.h> ------test.c------ int main(void) { int a; int b=0; b = a; return 0; } 警告 W8004 error.c 6: 'b' に代入した値は使われていない(関数 main )という警告なのですが、初期化をしている変数すべての警告がでてしまい困っています。 この警告だけを表示させない方法等あるのでしょうか?

  • 多くのファイルで共通で使う数(C++)

    現在大学の卒業研究でこんな感じのプログラムをC++で作っているのですが ちょっと行き詰っています。 動くには動くのですが、汚いというか。 main.cpp --->実験プログラムのメイン。実験の初期値などが書いてある。 basic.cpp --->基本的な算術計算につかう関数やデータ構造のクラスが書いてある。 sampling.cpp learning.cpp --->実験にいろいろ使うメソッドが書いてある。 これらに加えてbasic.h, sampling.h, learning.hがあり それぞれのcppファイルにインクルードしてあります。 また各cppファイルに共通で使う定数があるのです。たとえば const int DIMENSION = 3; //3というのはたとえばで実験の条件による違う const int ROOP = 20000; などという感じです。これをmain.cppの先頭で宣言して condition.hにextern const int DIMENSION;などと書いて 各cppファイルにこれまたインクルードさせてあります。 今のところこれはこれでプログラムは問題なく動いているのですが 今になって仕様を少し変更する必要が出てきました。 たとえばこのcppファイル群をzikkouという実行ファイルに コンパイルしていたとすると、実行の際に $ zikkou 4 20000 という感じに引数としてDIMENSION,ROOPの値を指定したいのです。 ($はプロンプト画面、ターミナル画面ということです) constのままだとこのように実行の毎にDIMENSION,ROOPを変更するというのは出来ないと思うんですが constを外すと、実行中の安全性が疑問です。 (これらの定数は一回ある値でプログラムが動き出したら絶対に 変わりませんし変わってはいけません) なにか良い方法はございませんでしょうか? よろしくお願いいたします。 なにか情報不足がありましたらおっしゃってください。 すぐに補足いたします(ソースのupは長すぎて難しいです)。 よろしくお願いいたします。

  • C++ テンプレートクラス内のメソッド 警告 意味

    VC++2008 windows7 の環境でC++のプログラミングをしております. 以下の種類の警告がいくつか出てくるのですが,この警告の理由が分かる方いますか? 実行結果には影響は出ていませんが,出来れば消したいと考えています. クラス テンプレート のメンバ関数 void A<T>::TEST(A<T> *,int) のコンパイル中 1> .\main.cpp(69) : コンパイルされたクラスの テンプレート のインスタンス化 1> 'A<T>' の参照を確認してください 1> with 1> [ 1> T=uchar 1> ]

  • C# 棒グラフの描画について

    2010 express初心者です。 下記のようにCSVからチャートにしたところ、 private void button1_Click(object sender, EventArgs e) { var lines = File.ReadAllLines("test.csv"); var labels = lines[2].Split(','); //これをX軸として使用する var totalVals = lines[3].Split(','); ChartArea area = new ChartArea(); //最初から設定されているシリーズを削除する chart1.Series.Clear(); //支出総額のシリーズ var totalSrs = new Series("総出費"); totalSrs.ChartType = SeriesChartType.Column; //棒グラフ //支出総額のデータ for (int i = 0; i < labels.Length; i++) { var data = new DataPoint(); data.SetValueY(totalVals[i]); // totalSrs.AxisLabel = "総出費"; totalSrs.Points.Add(data); } chart1.Series.Add(totalSrs); //グラフにシリーズを追加 } 画像のようになり困っています。 CSVは  日時,その月の金額,同,,,,,,,,,,,, としています。 表示の改善方法がありましたらご教授ください。

  • 無名ネームスペース中のstatic宣言について

    お世話になります。 以下のように無名ネームスペース内でstatic定数を宣言することに 何か問題はあるでしょうか? QACという静的コードチェックツールで 「無名ネームスペース中のstatic宣言」と 警告が出てしまいます。 test.h ----------------------- class Test{ void testFunc(); }; test.cpp ------------------------ namespace { static const int i = 3; } void Test::testFunc(){ std::cout << i << std::endl; }

  • Visual C++ Toolkitでcppをコンパイルすると・・

    最近質問が多くてすみません。 一応調べてみましたが、同じような質問が既存ならば警告お願いします。 #include <iostream> int main(){ return 0; } これだけのファイルを、例えばtest.cppとして保存します。そして cl test.cpp とすると、ぶわーっと警告(warning)がでて、しかしtest.exeができあがります。 警告内容がかなり長いので、そのうちの1つを載せます。 C:\Program Files\Microsoft Visual C++ Toolkit 2003\include\stdexcept(39) : see reference to class template instantiat ion 'std::basic_string<_Elem,_Traits,_Ax>' being compiled with [ _Elem=char, _Traits=std::char_traits<char>, _Ax=std::allocator<char> ] 意味がわかりません!! ちなみに、bccでは警告なしにコンパイルできます。

  • C++ visualstudio グローバル変数

    C++のプログラミングに関する質問です。 visual studio2008を使用しています。 手元に非常に複雑なC++ファイルなどから構成されている1つのprojectがあります。(ヘッダファイルなどもあります) そのため、このprojectをデバッグすると、A.cppファイルをデバッグ→B.cppファイルをデバッグ→A.cppファイルをデバッグ→C.cppファイルをデバッグのように、色々なcppファイルを跨ってデバッグします。 1つのcppファイルには大量の関数があり、cppファイルの先頭や,関数外の部分に例えばA.cppで int test などと宣言すれば、A.cppファイル内ではtestと名付けた変数をすべての関数で使えます。 しかし、あくまでA.cppファイル内だけで使用できるだけで、別のBやC.cpp内で使うことはできません。 このtest変数をB.cppやC.cppファイルでも使えるようにするにはどうすればいいでしょうか? 上で挙げた例でいうなら、A.cppからB.cppファイルに移動する際の関数の引数として渡す方法は考えられますが、実際には、 test変数を使いたいのはかなり後に登場するcppファイルで関数の引数として扱うのは非常に大変です。 (Z.cppでtest変数を使いたい。しかしZ.cppに到達するまでにはA~Y.cppを通り、その間に登場するすべての関数でtestを引数にしなければならない) 関数の引数でtest変数を使えるようにする以外の方法がありましたたら教えていただけると幸いです。 実際にやりたいことは A.cpp内にある関数が実行されたらその数をカウントし(A.cppのこの関数は何度も呼び出される関数) //count ++ このcount++の値によってZファイルのある関数での動作を変えたいと思っています。 if(count<100){ printf("aaa"); } しかし、現状ではZ.cppファイル内ではcountが定義されていないので上のようなif文を書くとエラーになってしまいます。

  • メンバ関数にconstをつけた際の問題

    C++を勉強中の学生です。 以下のようなコードで問題が起こりました。 class TEST{ private: int mArray[10]; //(int a;) public: int* get_mArray(void) const; //(int get_a(void) const;) }; int* TEST::get_mArray(void) const{ return mArray;    //配列の先頭要素の値を受け取りたい。 } //(関係のありそうな部分のみを抜き出しました) このコードにおいて、関数は値を変えない事が明白なので、constをつける必要性はないのですが(癖でつけた際に発生した問題です)、 なぜconstをつけると動作しなくなるのか知りたいです。 //()で囲った部分を有効にし、 int TEST::get_a(void) const{return a;}という関数はエラーにならなかったのですが、どのような違いがあるのでしょうか? 出たエラーは(visual C++ 2010) 'const int [10]' から 'int *' に変換できません。 というものでした。 ポインタとconst関連の部分を手持ちの本で勉強しなおしたのですが、解答を得られなかったのでこちらで質問させてもらいます。

  • 既に定義されている関数のプロトタイプがない警告

    現在、Cで作られたプログラムの単体テストをしています。 これを、以下のように、 ・testBase.h → テストのための表示とかを作成するためのもの ・progForCheck.c → これがチェックすべきもので、この中の関数をそれぞれチェック ・add.c など → main() を含んだ、チェックを実行するためのファイル として、以下のような感じで関数分のテストプログラムを作成してテストしようとしています。 テスト自体は問題ないのですが、この構成でコンパイルをすると、 警告 W8065 test.c 13: プロトタイプ宣言のない関数 'writeFotter' の呼び出し(関数 main ) 警告 W8057 test.c 15: パラメータ 'argc' は一度も使用されない(関数 main ) という警告が出ます。後者はその通りで問題ないのですが、前者の警告は、よくわかりません。 実体は3つのファイルですが、コンパイル時にはひとつのファイルになって、既に定義されている writeFotter() を呼んでいるだけなのに、「プロトタイプがない」という警告が出るのは、なぜなのでしょう。 それに、writeHeader() や、doCheck() は警告も無しです。 とりあえず、リンクも正常でちゃんと動作しているようなのですが、ちょっと気持ち悪いので質問しました。 // --------------- testBase.h ---------- #include <stdio.h> int OK = 0; int NG = 0; void doCheck(int isOK) { if (isOK) OK++; else NG++; } void writeHeader(char *title) { printf(" ------------ %s ------------\n", title); } void writeFotter() { printf(" OK = %d, NG = %d", OK, NG); if (NG == 0) printf(" ○○○○○○○○○○○○○○○○○○○\n"); else printf(" ×××××××××××××××××××\n"); } // ------------ progForCheck.c int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } // ------------ test_add.c #include "testBase.h" #include "progForCheck.c" int main(int argc, char *argv[]) { writeHeader(argv[0]); doCheck(add(1, 2) == 3); doCheck(add(2, 4) == 6); doCheck(add(8, 1) == 9); writeFotter(); return 0; }

  • C++のファイルの分割について教えてください。

    分割したプログラムの書き方を練習中なのですが、 下のようなプログラムを書いて、ビルドしようとしたら失敗します。 どこが悪いのか、教えていただけないでしょうか? (5)\test30\Debug\test30.exe : fatal error LNK1120: 外部参照 1 が未解決です。 1>test30 - エラー 2、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== //test30.cpp #include <iostream> #include "sub.h" int main(void) { std::cout<<"メインプログラムです。"<<std::endl; sub1(); sub2(); return 0; } ------------------------------------------------------------- //sub1.cpp #include <iostream> void sub1(void) { std::cout<<"サブ1です。"<<std::endl; } ------------------------------------------------------------- //sub2.cpp #include <iostream> void sub1(void) { std::cout<<"サブ2です。"<<std::endl; } --------------------------------------------------------------- //sub.h void sub1(void); void sub2(void);

専門家に質問してみよう