vipasigaruのプロフィール

@vipasigaru vipasigaru
ありがとう数46
質問数3
回答数68
ベストアンサー数
16
ベストアンサー率
38%
お礼率
33%

  • 登録日2008/09/09
  • クラス内の関数内static変数について

    クラス内の「staticではないメンバ関数内で定義される」static変数の初期化タイミングはいつでしょうか? 自分としてはクラスのインスタンス生成時に初期化されるものだと思っていたのですが、どうもそうでは無さそうだという現象に出会ったもので。 例えば以下のようなサンプルプログラムがあるとします。 --------------------------------------- class TA { public: void func(int i); }; void TA::func(int i) { static int d=0; d += i; std::cout << d << std::endl; } int main() { for(int i=1; i < 3;i++) { TA ta; ta.func(i); ta.func(i); ta.func(i); } } --------------------------------------- これを実行した時、自分としては 1 2 3 2 4 6 という結果を期待していた訳ですが、実際には 1 2 3 5 7 9 という結果になりました。 ということは、もしかしてメンバ変数ではなくともクラス内に現れるstatic変数はstaticなメンバ変数と同等ということなのでしょうか? 実際、上記ソースのforループ内にもう一つclass TAのインスタンスtbを追加してみると、 --------------------------------------- for(int i=1; i < 3;i++) { TA ta; ta.func(i); ta.func(i); ta.func(i); TA tb; tb.func(i); tb.func(i); tb.func(i); } --------------------------------------- 1 2 3 4 5 6 8 10 12 14 16 18 となりました。 (まぁstaticではないメンバ変数に置き換えれば一応解決するのですが、個人的に何か凄く気持ち悪く感じて・・・)

    • ma2
    • 回答数3
  • プログラマーへの道?

    こんばんは。初めて質問させていただきます。 私は現在、契約社員として某大手通信会社の電話オペレーターを7年勤めています。 しかし年々、仕事の内容にもやりがいにも会社の方針やシステムなどにも疑問を感じるようになり、 「私がこれ以上この会社にいて成長できるのか?」 と考えるようになりました。 最近、プログラマーの仕事に興味を持つようになりました。 というのも、会社で現在使用しているシステムがあまりにもお粗末で使いづらく(聞けば15年以上同じものを使っているようです)、もっと効率のよい受付のシステムを作れば、いまだに手書きの書類が大半を占める受付の負担や、お客様対応時のミスを減らすことができるのではないかと思ったからです。 私はエクセルもワードも簡単な文書作成はできますが満足に使えるレベルではありません。 これからパソコンに関するいろいろなことを勉強して、大規模なシステムとはいかないまでも、毎日生活するなかでちょっと便利に使えるアプリのようなものを作って、いろんな人に喜んでもらえる仕事ができないかなぁと思っています。 私は現在31歳の女性・未婚です。ちなみに現在は地方に住んでいます。 遅くとも年内で今の会社を辞めて、何か別の仕事をしながらパソコンやプログラミングについての勉強をしていけたらと思っています。 (今の仕事は「目標」という名前の販売ノルマがあり、精神的に病んでしまうこともしばしばあるので退職は前提です) 今からもしどんなに頑張ったとしても、このような道を進むのは無謀でしょうか? いろいろなアドバイスをいただけたら嬉しく思います、どうぞよろしくお願いします。

  • ListViewについて

    CSVファイルを読込後、指定したカラムにてソートをかけてからListViewに表示することは可能でしょうか???

  • テキストファイルを配列に

    始めまして C言語にてテキストファイルの中身を読み込み一次元配列に代入するというシステムを作ろうとしているのですがわかりません テキストファイルの中身は 12 5312 72 7 444 53 7884 といった具合で100数行あり一行ごとに配列に入れたいです 勉強を始めたばっかりで本を見ても書いていなく困っています わかるかたご指導願えますか? よろしくお願いいたします

  • charからの型変換

    現在,計測機からUDP通信で送信される計測データをwinsockを用いて受信し解析するプログラムを書いています.受信データは16進数の数値群です. http://www.geekpage.jp/programming/winsock/udp.php こちらのコードを参考に作成し,buf配列内をdatファイルで書き出すことで受信データの確認も出来ました. しかし,解析にあたりいくつか私では解決できない問題に悩んでいるので質問させていただきます. recv関数の第二引数で指定する配列がchar型しか指定できないようで受信データが文字データとなってしまうことに悩んでいます. これをint型などの計算しやすい型に変換したいのですが,strtolやatol関数を用いても失敗してしまいます.(ASCIIに準拠していない為?) printf("%s %x",buf , buf)でbufを表示しようとしてもやはり文字化けが起こってしまいます. int型やdoubleなどの数値の型へ変化する方法をアドバイスいただけないでしょうか? datファイルで保存した受信データはこんな感じです(一部) FF EE 3D 75 62 00 C3 00 00 FF 55 00 D7 00 00 FF 5E 00 D7 00 00 FF 5A 00 C3 00 00 FF 64 00 C3 00 00 FF 62 00 EB 00 00 FF 71 00 FF 00 00 FF 69 00 FF 00 00 FF 6E 00 FF 00 00 FF 65 00 FF 00 00 FF A1 00 EB 00 00 FF A3 00 D7 00 00 FF 8C 00 FF 5C 00 FF B3 00 EB 63 00 FF AA 00 C3 00 00 FF 8F 00