sha-girl の回答履歴
- コンストラクタの順序?
以下のソースに関して質問です。 /* library.h */ #pragma comment(lib, "library.lib") class A { public: A(); }; /* library.cpp */ #include "library.h" #include <list> class B { private: std::list<int> m_listi; public: void Func() { m_listi.push_back(0); //フリーズ return; } } g_CB; A::A() { g_CB.Func(); return; } /* test.cpp */ #include "library.h" A CA; int main() { return 0; } library.cppからlibrary.libをつくり、それをtest.cppで使用したところ、 ソースに示したところでプログラムがフリーズしてしまいます。 恐らくクラスBのm_listiが初期化される前にそれを使おうとしたためだと思います。 どうすればそれを避けられるでしょうか。。。
- 時刻と時間を明確に区別したい時の変数名
変数名の付け方(英語)でお聞きしたいことがあります。 時刻 ・・・ 整数値 (0~2359) 時間 ・・・ 整数値 (0~上限無し) という2つの概念があり、これらの変数名を明確に区別して付けたい時、 皆さんはどんな英単語を使いますか? timeだとどっちだか分からないのでちょっと悩んでます。 でも、英語には時刻と時間を明確に区別する単語って無いですよね?
- ベストアンサー
- その他(プログラミング・開発)
- mokpok
- 回答数5
- リソースデザイナ管理対象ファイルが大きすぎ・・・
VisualStudioのリソースデザイナ管理対象ファイルサイズが大きすぎて使用方法を検討していますが・・・ http://dobon.net/vb/dotnet/programing/vsresource.html このページを参考にしてZIPファイルをリソースとして登録しようと試みたのですが、元々のファイルサイズが2GBもありプログラムをビルドしたりした場合でもサイズは変わらないためディスクを消費してしまい現実的ではないと思っています。 (2GBのサイズはどう転がしても必須のため仕方がない状態です) 特にこのプログラムを配ったりもするので。。。自分以外のPCのディスク圧迫を招くわけでありまして・・・ こういった場合、ファイルをどこかに配置しておいてダウンロードさせて実行or呼び出して実行させるしかほかないでしょうか? とりあえずLAN内にはNASやファイルサーバの用途としているものもあるのでそこに配置できなくも無いですが、URL等が変わる可能性もあるため思案しております。 どなたかいいヒントをいただけませんでしょうか?
- リソースにあるHTMLを展開させることは可能??
VisualStudioのリソース管理を使ってHTMLをビルドしたプログラムの中に含んでいます。 そのファイルをダウンロードさせることなくIEで開いてあげることはできませんでしょうか? プログラムのREADMEとして使うものですが、そのプログラムを動かした以降は必要がないものなので余計なゴミでディスクを汚したくないと思っています・・・
- 人工衛星落下
NASAの、人工衛星が落下するかもってのを聞きました。個人に当たる確立は20兆分の1とかって、なってましたが、万が一ぶつかった場合はとりあえず病院に行く事になるんでしょうが、そのときの保障みたいのってどうなるんですかね?個人でNASAと交渉になるんでしょうか?それとも日本政府? くだらない質問ですいません。誰か教えてください
- 締切済み
- その他(生活・暮らし)
- nagi-1218
- 回答数2
- 全角文字を含んだ文字の並びを逆順にするには?
こんにちは。 C言語において、以下のような2つの関数を利用して、全角文字を含んだ文字列の並びを逆順にする事を考えました。 ちなみにコンパイラは、borlandのC++コンパイラを使っています。 文字コードがShift_JISの場合、全角文字の上位バイトが0x81~0x9F、0xE0~0xFCの範囲に収まるという事を聞いたので、まず、以下のように、渡された文字が、全角文字の上位バイトかどうかを判定する関数を作りました。 ____________________________________________________________ int is_2byte(unsigned char c){ return ( ( (c >= 0x81) && (c <= 0x9f) ) || ( (c >= 0xe0) && (c <= 0xfc) ) ); } ____________________________________________________________ 次に、上の関数を利用し、以下のように、渡された文字列の、文字の並びを逆順にする関数を作りました。 ____________________________________________________________ void rev_str(char *str) { char temp[1000]; char tmp; int i, j; for(i=strlen(str)-1, j=0; i>=0; i--, j++){ temp[j]=str[i]; if(is_2byte(temp[j])){ tmp=temp[j-1]; temp[j-1]=temp[j]; temp[j]=tmp; } } temp[j]='\0'; strcpy(str, temp); } __________________________________________________ この関数を、あいうえお順に試して行った所、ひらがなの 「あいうえお かきくけこ さしすせそ たちつてと なにぬねの はひふへほ まみむめ」 という文字列は、逆順にする事ができたのできました。 しかし、「も」以降の文字を含ませた途端、実行時エラーが発生し、プログラムがストップしてしまいます。 また、カタカナの場合は、「メ」以降の文字を含ませた場合に、実行時エラーとなります。 何が問題なのかが全然分からないので、困っています。 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- MetalLover
- 回答数11
- 全角文字を含んだ文字の並びを逆順にするには?
こんにちは。 C言語において、以下のような2つの関数を利用して、全角文字を含んだ文字列の並びを逆順にする事を考えました。 ちなみにコンパイラは、borlandのC++コンパイラを使っています。 文字コードがShift_JISの場合、全角文字の上位バイトが0x81~0x9F、0xE0~0xFCの範囲に収まるという事を聞いたので、まず、以下のように、渡された文字が、全角文字の上位バイトかどうかを判定する関数を作りました。 ____________________________________________________________ int is_2byte(unsigned char c){ return ( ( (c >= 0x81) && (c <= 0x9f) ) || ( (c >= 0xe0) && (c <= 0xfc) ) ); } ____________________________________________________________ 次に、上の関数を利用し、以下のように、渡された文字列の、文字の並びを逆順にする関数を作りました。 ____________________________________________________________ void rev_str(char *str) { char temp[1000]; char tmp; int i, j; for(i=strlen(str)-1, j=0; i>=0; i--, j++){ temp[j]=str[i]; if(is_2byte(temp[j])){ tmp=temp[j-1]; temp[j-1]=temp[j]; temp[j]=tmp; } } temp[j]='\0'; strcpy(str, temp); } __________________________________________________ この関数を、あいうえお順に試して行った所、ひらがなの 「あいうえお かきくけこ さしすせそ たちつてと なにぬねの はひふへほ まみむめ」 という文字列は、逆順にする事ができたのできました。 しかし、「も」以降の文字を含ませた途端、実行時エラーが発生し、プログラムがストップしてしまいます。 また、カタカナの場合は、「メ」以降の文字を含ませた場合に、実行時エラーとなります。 何が問題なのかが全然分からないので、困っています。 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- MetalLover
- 回答数11
- 全角文字を含んだ文字の並びを逆順にするには?
こんにちは。 C言語において、以下のような2つの関数を利用して、全角文字を含んだ文字列の並びを逆順にする事を考えました。 ちなみにコンパイラは、borlandのC++コンパイラを使っています。 文字コードがShift_JISの場合、全角文字の上位バイトが0x81~0x9F、0xE0~0xFCの範囲に収まるという事を聞いたので、まず、以下のように、渡された文字が、全角文字の上位バイトかどうかを判定する関数を作りました。 ____________________________________________________________ int is_2byte(unsigned char c){ return ( ( (c >= 0x81) && (c <= 0x9f) ) || ( (c >= 0xe0) && (c <= 0xfc) ) ); } ____________________________________________________________ 次に、上の関数を利用し、以下のように、渡された文字列の、文字の並びを逆順にする関数を作りました。 ____________________________________________________________ void rev_str(char *str) { char temp[1000]; char tmp; int i, j; for(i=strlen(str)-1, j=0; i>=0; i--, j++){ temp[j]=str[i]; if(is_2byte(temp[j])){ tmp=temp[j-1]; temp[j-1]=temp[j]; temp[j]=tmp; } } temp[j]='\0'; strcpy(str, temp); } __________________________________________________ この関数を、あいうえお順に試して行った所、ひらがなの 「あいうえお かきくけこ さしすせそ たちつてと なにぬねの はひふへほ まみむめ」 という文字列は、逆順にする事ができたのできました。 しかし、「も」以降の文字を含ませた途端、実行時エラーが発生し、プログラムがストップしてしまいます。 また、カタカナの場合は、「メ」以降の文字を含ませた場合に、実行時エラーとなります。 何が問題なのかが全然分からないので、困っています。 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- MetalLover
- 回答数11
- 4バイトより大きな値の2進数への変換方法
コマンドライン引数で4バイトで収まらない値(0x100000000以上)を受け取り、 2進数へ変換し出力したい場合はどのようにすればよいでしょうか? ※longlongのような64bit型を使わないことが前提として・・・ よろしくお願いします。
- ベストアンサー
- C・C++・C#
- noname#142160
- 回答数2
- サイトURLのwww.は必要か?否か?
サイトのURLは、www.有りと無しのサイトがあります。 例 www.有り:http://www.abc.co.jp www.無し:http://abc.co.jp 質問(1) www.は無いといけないでしょうか? 質問(2) www.無しに何かデメリットはあるんでしょうか? [補足] Web黎明期から数年前まではwww.有りが多かったですが、ここ数年はwww.無しのサイトが めっきり多くなってきました。 キーボードの入力がしづらいスマフォやインターネットテレビなどのデバイスのためにも、 また、PCデバイスであっても入力の手間を省くためにも、そして、覚えてもらいやすくするためにも、 「問題がないのならば」www.無しのURLに統一しようと考えております。 .htaccessで統一する記述をおこない、Google検索結果でもwww.無しで出力されるよう指示を出したりすることは当然セットでおこないます。 宜しくお願いします。
- サイトURLのwww.は必要か?否か?
サイトのURLは、www.有りと無しのサイトがあります。 例 www.有り:http://www.abc.co.jp www.無し:http://abc.co.jp 質問(1) www.は無いといけないでしょうか? 質問(2) www.無しに何かデメリットはあるんでしょうか? [補足] Web黎明期から数年前まではwww.有りが多かったですが、ここ数年はwww.無しのサイトが めっきり多くなってきました。 キーボードの入力がしづらいスマフォやインターネットテレビなどのデバイスのためにも、 また、PCデバイスであっても入力の手間を省くためにも、そして、覚えてもらいやすくするためにも、 「問題がないのならば」www.無しのURLに統一しようと考えております。 .htaccessで統一する記述をおこない、Google検索結果でもwww.無しで出力されるよう指示を出したりすることは当然セットでおこないます。 宜しくお願いします。
- UNICODE化のための書き換え
お世話になります。 Visual stdio 2010 C++で作成しております。 以前までは、UNICODEを意識しておらず、 char const unsigned char* を使用していました。 UNICODE化を意識して char→TCHAR に変更しているのですが、 const unsigned char* はどのように書き換えればよいのでしょうか? ※LPCTSTRだけだと意味が変わってしまう気がして。。。 お手数ですがよろしくお願い致します。
- UNICODE化のための書き換え
お世話になります。 Visual stdio 2010 C++で作成しております。 以前までは、UNICODEを意識しておらず、 char const unsigned char* を使用していました。 UNICODE化を意識して char→TCHAR に変更しているのですが、 const unsigned char* はどのように書き換えればよいのでしょうか? ※LPCTSTRだけだと意味が変わってしまう気がして。。。 お手数ですがよろしくお願い致します。
- 文字コードにお詳しい方、教えて下さい
少々プログラミングに無関係な質問も含みすみません。 当方12年ほどインターネットをしております。 perlを齧る程度、c/c++を2年ほど経験しており 半角1はバイト 全角は2バイト OS毎の改行コード差 程度の知識は有るのですが、 文字エンコードの事がよくわからず、質問させて頂いております。 質問1 昔はWebサイトも頻繁に文字化けしていましたが、 今は日中韓どころかアラビア語等まで普通に表示していますが、 これはShift-JISからUTF-8になったりの変化で 起きた事なのでしょうか? しかし日本語でも2万文字弱 中国語でも4万文字? 2バイトで表現できるのは65536通り弱だと思うのですが なぜそんなに多くの国の言語を同時に表示できるのでしょうか? まさか1文字4バイトだったりするのでしょうか? 質問2 プログラムによって日本語以外の言語のコピー&ペーストが 可能な場合と不可能な場合とが有りますが、 それは全てShift-JISとUTF-8の差のみと思って良いのでしょうか? また、UTF-8の中にもバージョン差や国籍差が有ったりするのでしょうか? 質問3 海外プログラムを日本語のXPで起動すると文字化けし、 MS純正のOSの国籍?カモフラージュソフトで その国のXPのフリをして起動させると文字化けしなくなり 代わりに日本語が文字化けする というプログラムが有るのですが、 これと文字コードにはどんな関係があるのでしょうか? 質問4 ブラウザのように多くの国の言語を表示できるアプリケーションを C/C++で開発したい場合、どういう情報を調べて知識を付け、 どういう機能を使う、使わないの注意を払うべきでしょうか? 以上です。どれか1つの質問に対してのご助言だけで構いません。 参考になるURLの貼り付けだらけでも構いません。 何かご助言を頂けますと幸いです。
- ベストアンサー
- C・C++・C#
- noname#202167
- 回答数4
- BDXLとレコーダー本体の録画時間
いつもお世話になっています。 BDXLのHZモードで130時間録画できるブルーレイディスクを購入すれば、レコーダー本体のフルハイビジョン8倍、10倍、12倍、15倍などの機種は関係なくフルハイビジョンを130時間録画できるのでしょうか。 VHSの3倍よりちょっと良いくらいの画質でかまわないのですが、HZモードの画質の場合はどの程度になりますか? よろしくお願いします。
- ベストアンサー
- 記録メディア
- noname#149709
- 回答数1
- 専用ドメインと独自ドメインの違い
「専用ドメイン」と「独自ドメイン」の違いを教えてください。さらにこの2つを英語にするとどうなるかもお願いします。
- 締切済み
- その他(インターネット・Webサービス)
- tmt_kyli
- 回答数2
- 正社員とアルバイト(非正社員)の違いはどこですか
正社員とアルバイト(非正社員)の違いはどこですか? 一般的に社会保険の有無、責任感、労働時間、仕事内容、などと言いますが アルバイトでも社会保険加入の対象になりますし、責任感も個人のモチベーションによります。 労働時間もアルバイトでも長時間勤務の場合もあり、仕事内容もアルバイトでも責任ある仕事に就くこともあります。 大企業であれば社員証が有り、雇用契約書にサインして印鑑押すといった事もするのでしょうが、中小企業では社員証も無く雇用契約書にサインなんてほとんどないと思います。 そもそも世の中の大半の方々は本人が正社員と思っているだけで、事実上はアルバイト扱いじゃないのですか?
- 締切済み
- その他(就職・転職・働き方)
- mjgjt306
- 回答数11
- 継承を重ねた場合のコストはどうなるのでしょうか?
仮想関数を使った方がはるかに楽になる場合で、意味的にもまさに継承がベストという場合を除いては継承は使わない、使う場合も、なるべく1回で、かつ一つで十分になるような方法を考える方針できたのですが 今までは手持ちの情報的に問題ないだろうとおもっていたのですが、ある新事実が発覚したため 一回の継承では別々の親クラスとして作ることとなり、あとで同じ基底クラスのポインタとして扱えないタイミングが生じて面倒が出るか、あるいはそれ以外で一つにまとめようとするとどの方法をとっても非常に大きなコードの無駄が生じることになり コスト的に問題なく出来るなら二段に継承したいという状況が発生しました。 現在1段の継承をしている状態で、基底クラスは別々に二つあり、どちらも抽象クラスで、もしこれらのさらに親クラスを同じものとして作るような形に変更した場合、二段階に継承するといっても、どちらにしてもその時に最終的に完成する、3段目の孫クラスで始めて実体を作れる(コンストラクタを呼べる)ようになる つまり、そうなっても親と子は抽象クラスという状態になります。 真ん中のクラスで、一番上のクラスの純粋仮想関数をoverrideする関数もいくらかは出てくるかもしれませんが、定義せずに残す事が確実に決まっている関数も既に存在しますし、逆に真ん中のクラスで増える純粋仮想関数も存在する見込みです。 こういった状況で、問題と考えられるのはただ一つ、コストに関して、なのですが 全ての仮想関数は、オーバーライド回数は親・子・孫間で必ず1回に限定されるようにプログラムする場合 1. 結局それに関しては一回分の継承とまったく同じコストになると考えて良いでしょうか? つまり仮想関数が、だいたいは関数ポインタのような原理で動いているとすれば、テーブルの要素(?)が増えた場合にコストが変わる、とか、継承回数が変わると一番上で宣言した純粋仮想関数を、真ん中でまったくoverrideせずに孫クラスでoverrideした場合、一段階しか継承せずに(単純に親クラスで宣言したのを子クラスでoverride)した場合とは実はコストが変わるとか そういう事はまずないと考えて良いのでしょうか? 2. 仮想関数で最も恐れるべきはキャッシュミスだと思うのですが、それについての危険性はそれほどかわりがない、でしょうか?簡単なクラスでベンチマークをとった結果は、「特定の範囲で繰り返してるだけ」に近かったせいか、クラスが小さかったせいか、横にはせまかったせいか、ほとんど変わりが分かりませんでした。) 3. コンストラクタやデストラクタについては、極力初期化リストで初期化、というパターンに頼った場合 かつ、孫クラス以外の、親クラスと子クラスは抽象クラスとなる、場合で かつ、親クラスのコンストラクタ、デストラクタはインライン化宣言されていて(つまり子クラスのコンストラクタ・デストラクタを呼ぶときにはその実装が既に見える位置に記述されるようになっていて) 子クラスのそれらはインライン宣言されていない という状況の場合、単純に1段階の継承のみで基底クラスのそれらがインライン宣言されていない場合と、最終的にコストは等価になると考えてもいいのでしょうか?
- ベストアンサー
- C・C++・C#
- LongSecret
- 回答数4
- ヨウ素
ヨウ素は体に良いのですか?それとも悪いのですか? 毎朝、DHCの健康食品(サプリメント)マルチミネラルを呑んでいます。 この食品の成分表示を見るとヨウ素が50.8 シg入っています。 健康食品なので摂取したほうが良いという意味だと理解していたのですが、 連日の原発の報道を聞いていると汚染水からヨウ素検出など、悪い物質のような表現をされているのですが、実際のところヨウ素とはどのようなものなのですか? 摂取しても平気なのでしょうか? むしろ、摂取したほうがよいのでしょうか? 矛盾していてイマイチ解りません。 教えてください。 よろしくお願いいたします。
- ベストアンサー
- ニュース・時事問題
- noname#161635
- 回答数3