C++相談室 part39
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
05/01/24 09:49:52ただし質問の前にはFAQに一通り目を通してください。
テンプレートライブラリ(STL含む)に関する質問は
専用の別スレにお願いします。
IDE(VC++など)などの使い方の質問もその開発環境のスレに
お願いします。
前スレ part38
http://pc5.2ch.net/test/read.cgi/tech/1101473340/
過去スレ、関連スレ、関連リンクなどは >>2-20 あたり
0002デフォルトの名無しさん
05/01/24 09:50:482 http://pc.2ch.net/tech/kako/996/996640937.html
3 http://pc.2ch.net/tech/kako/1003/10038/1003832761.html
4 http://pc.2ch.net/tech/kako/1009/10090/1009071535.html
5 http://pc.2ch.net/tech/kako/1014/10142/1014217496.html
6 http://pc.2ch.net/tech/kako/1018/10184/1018454705.html
7 http://pc.2ch.net/tech/kako/1021/10217/1021787032.html
8 http://pc3.2ch.net/tech/kako/1025/10250/1025010364.html
9 http://pc3.2ch.net/tech/kako/1027/10273/1027347982.html
10 http://pc3.2ch.net/tech/kako/1029/10293/1029315669.html
11 http://pc3.2ch.net/tech/kako/1032/10323/1032345774.html
12 http://pc3.2ch.net/tech/kako/1035/10350/1035005882.html
13 http://pc3.2ch.net/tech/kako/1038/10380/1038031395.html
14 http://pc5.2ch.net/tech/kako/1041/10413/1041328679.html
15 http://pc5.2ch.net/tech/kako/1043/10436/1043605481.html
0003デフォルトの名無しさん
05/01/24 09:51:5017 http://pc5.2ch.net/tech/kako/1047/10475/1047560042.html
18 http://pc5.2ch.net/tech/kako/1050/10501/1050177746.html
19 http://pc5.2ch.net/tech/kako/1052/10526/1052625846.html
20 http://pc5.2ch.net/tech/kako/1055/10551/1055162298.html
21 http://pc5.2ch.net/tech/kako/1057/10575/1057580107.html
22 http://pc5.2ch.net/tech/kako/1060/10603/1060361082.html
23 http://pc5.2ch.net/tech/kako/1062/10626/1062690663.html
24 http://pc5.2ch.net/tech/kako/1066/10665/1066546387.html
25 http://pc5.2ch.net/tech/kako/1067/10679/1067949669.html
26 http://pc5.2ch.net/test/read.cgi/tech/1070164402/ (迷子)
27 http://pc5.2ch.net/test/read.cgi/tech/1074454641/ (迷子)
28 http://pc5.2ch.net/test/read.cgi/tech/1077985164/
29 http://pc5.2ch.net/test/read.cgi/tech/1082047479/
30 http://pc5.2ch.net/test/read.cgi/tech/1084030770/
31 http://pc5.2ch.net/test/read.cgi/tech/1086185282/
32 http://pc5.2ch.net/test/read.cgi/tech/1088236078/
33 http://pc5.2ch.net/test/read.cgi/tech/1090180012/
34 http://pc5.2ch.net/test/read.cgi/tech/1092018643/
35 http://pc5.2ch.net/test/read.cgi/tech/1093958200/
36 http://pc5.2ch.net/test/read.cgi/tech/1096304546/
37 http://pc5.2ch.net/test/read.cgi/tech/1098543578/
38 http://pc5.2ch.net/test/read.cgi/tech/1101473340/
0004デフォルトの名無しさん
05/01/24 09:52:48[C++ FAQ]
http://www.parashift.com/c++-faq-lite/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
Cとその仕様を比較しながらの解説なので分かりやすい。
***** 質問の前に必ずこの二つに目を通してください *****
[禿 Stroustrup]
http://www.research.att.com/~bs/
[C++ International Standard]
http://www.kuzbass.ru/docs/isocpp/
http://www.kuzbass.ru/docs/ansi_iso_iec_14882_1998.pdf
http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110&ICS1=35&ICS2=60&ICS3=
[JTC1/SC22/WG21 - C++]
http://www.open-std.org/jtc1/sc22/wg21
[C/C++ Users Journal]
http://www.cuj.com/
[cppll (ML)]
http://www.trickpalace.net/cppll/ (日本語)
0005デフォルトの名無しさん
05/01/24 09:53:40amazon.com C,C++関連書籍
http://www.amazon.com/exec/obidos/tg/browse/-/3956/ref=br_bx_c_1_3/
The C++ Programming Language
http://www.amazon.com/exec/obidos/ASIN/0201700735/
http://www.amazon.co.jp/exec/obidos/ASIN/475611895X/ (翻訳)
C++ Primer (3rd Edition)
http://www.amazon.com/exec/obidos/ASIN/0201824701/
http://www.amazon.co.jp/exec/obidos/ASIN/4756140068/ (翻訳)
The C++ Standard Library
http://www.amazon.com/exec/obidos/ASIN/0201379260/
http://www.amazon.co.jp/exec/obidos/ASIN/4756137156/ (翻訳)
Effective C++
http://www.amazon.com/exec/obidos/ASIN/0201924889/
http://www.amazon.co.jp/exec/obidos/ASIN/4756118089/ (翻訳)
More Effective C++
http://www.amazon.com/exec/obidos/ASIN/020163371X/
http://www.amazon.co.jp/exec/obidos/ASIN/4756118534/ (翻訳)
Exceptional C++
http://www.amazon.com/exec/obidos/ASIN/0201615622/
http://www.amazon.co.jp/exec/obidos/ASIN/4894712709/ (翻訳)
More Exceptional C++
http://www.amazon.com/exec/obidos/ASIN/020170434X/
Exceptional C++ Style
http://www.amazon.com/exec/obidos/ASIN/0201760428/
0006デフォルトの名無しさん
05/01/24 09:55:15■Books(Templateまわり)■
Effective STL
http://www.amazon.com/exec/obidos/ASIN/0201749629/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714108/ (翻訳)
Modern C++ Design
http://www.amazon.com/exec/obidos/ASIN/0201704315/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714353/ (翻訳)
C++ Templates
http://www.amazon.com/exec/obidos/ASIN/0201734842/
C++ Template Metaprogramming
http://www.amazon.com/exec/obidos/ASIN/0321227255/
0007デフォルトの名無しさん
05/01/24 09:56:01[Boost]
Boost http://www.boost.org/
(日本語) http://www.kmonos.net/alang/boost/
(日本語) http://shinh.skr.jp/boost/
[STL]
STLport http://www.stlport.org/
SGI-STL http://www.sgi.com/tech/stl/
STLFilt http://www.bdsoft.com/tools/stlfilt.html
(日本語) http://www005.upp.so-net.ne.jp/episteme/html/stlprog/
(日本語) http://www.wakhok.ac.jp/~sumi/stl/
[Loki]
http://www.moderncppdesign.com/
LokiPort-MSVC7 http://www.geocities.com/rani_sharoni/LokiPort.html
LokiPort-MSVC6sp5 http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport
[他]
ACE http://www.cs.wustl.edu/~schmidt/
Blitz++ http://www.oonumerics.org/blitz/
flex++ Bison++ http://www.idiom.com/free-compilers/TOOL/BNF-15.html
[他ライブラリリンク集]
http://www.trumphurst.com/cpplibs/cpplibs.phtml
(日本語) http://www.kmonos.net/alang/cpp/lib.html
0008デフォルトの名無しさん
05/01/24 12:17:14【C++】template 統合スレ -- Part6
http://pc5.2ch.net/test/read.cgi/tech/1101384692/
どこかで誰かがC/C++の宿題を片付けます 38代目
http://pc5.2ch.net/test/read.cgi/tech/1105541524/
C/C++でのWindowsPrograming議論スレ(質問お断り)
http://pc5.2ch.net/test/read.cgi/tech/1049790146/
managed C++ やろうぜ!!
http://pc5.2ch.net/test/read.cgi/tech/1014486422/
ATL/WTL Part3
http://pc5.2ch.net/test/read.cgi/tech/1095442366/
0009デフォルトの名無しさん
05/01/24 12:18:180010デフォルトの名無しさん
05/01/24 12:19:19環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない。
0011デフォルトの名無しさん
05/01/24 12:20:36すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
0012デフォルトの名無しさん
05/01/24 12:21:30#include <stdafx.h>
後氏ね。
0013デフォルトの名無しさん
05/01/24 12:22:27言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0014デフォルトの名無しさん
05/01/24 13:16:43個人的に技術系スレで【】は勘弁
0015デフォルトの名無しさん
05/01/24 13:23:040016デフォルトの名無しさん
05/01/24 13:23:110017デフォルトの名無しさん
05/01/24 13:26:08しかも総合スレだしな
0018デフォルトの名無しさん
05/01/24 13:26:570019デフォルトの名無しさん
05/01/24 13:37:160020デフォルトの名無しさん
05/01/24 15:16:25普通に淡々と書けばいいのにな
0021デフォルトの名無しさん
05/01/24 15:26:090022デフォルトの名無しさん
05/01/24 17:29:17STLに関しては、スレタイに含めず>>1に書けば十分な気もするけどな。
どのみちtemplateスレもstlじゃ引っかからないんだし。
0023デフォルトの名無しさん
05/01/25 14:44:050024デフォルトの名無しさん
05/01/26 21:58:08class point{
private:
int x;
int y;
public:
point(int a,int b){x = a; y = b;}
virtual void show();
};
void point::show()
{
cout << "x:" << x << endl;
cout << "y:" << y << endl;
}
class 3Dpoint:public point{
private:
int z;
public:
3Dpoint(int a,int b,int c):point(a,b){z = c;}
void show();
};
void 3Dpoint::show()
{
cout << "x:" << x << endl;
cout << "y:" << y << endl;
cout << "z:" << z << endl;
}
0025デフォルトの名無しさん
05/01/26 22:03:553Dpoint ←数字で始まる識別子は許されない。
0026デフォルトの名無しさん
05/01/26 22:05:11あと、基底クラスのメンバをprivateにしているが、これだと派生クラスからアクセスできない。
protectedにすべき。
0027デフォルトの名無しさん
05/01/26 22:14:31どうもです。
コンパイルできました。
0028デフォルトの名無しさん
05/01/27 09:52:580029デフォルトの名無しさん
05/01/30 22:03:270030デフォルトの名無しさん
05/02/04 01:52:120031森
05/02/04 09:28:35例え:車3d画像)、サンプル source code がございませんか?
教えて頂ければ、幸いです。有難う。
Email: [email protected]
0032デフォルトの名無しさん
05/02/04 09:52:14外人さんですか?
0033デフォルトの名無しさん
05/02/04 23:06:00なんでエラーメッセージを読まないのか知りたい。
0034デフォルトの名無しさん
05/02/07 17:04:160035デフォルトの名無しさん
05/02/08 02:28:02でリークチェックしたんですが、ファイル名、行番号が表示されない。
どなたか原因分かる方いらっしゃいませんでしょうか。
リーク情報は表示されますがファイル名、行番号のみが表示されません。
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
の順で記述してます。
_CrtSetDbgFlagマクロは、プログラムエントリポイント始めに記述。
VC++スレが無いのでここで質問させて頂きました。
0036デフォルトの名無しさん
05/02/08 03:42:10あんたの目は節穴か?
http://pc5.2ch.net/test/read.cgi/tech/1104843249/
http://pc5.2ch.net/test/read.cgi/tech/1101931660/
0037デフォルトの名無しさん
05/02/08 03:47:420038デフォルトの名無しさん
05/02/12 09:32:10日本以外では共通なのかな。
私は英語とタイ語ぐらいしか分からないけど
0039デフォルトの名無しさん
05/02/25 13:43:540040デフォルトの名無しさん
05/03/02 00:04:380041デフォルトの名無しさん
05/03/04 01:54:21http://pc5.2ch.net/test/read.cgi/tech/1106466303/
↑の次スレとして再利用する?
0042デフォルトの名無しさん
05/03/04 02:18:41うん。
0043デフォルトの名無しさん
05/03/04 09:54:21テキストファイルの一行の処理1024バイトについて。
0044デフォルトの名無しさん
05/03/04 10:50:581行全部読みきる必要があるならそれなりに処理しなければいけないのは言うまでもないとして。
私のところでは、設定ファイルみたいなものを処理するときには1行200バイト以内という前提で書くことが多い。
あー、そう言えば1024なんて仮定はしたことないな。その長さのテキストファイルを想定するなら素直に全部読みきる対処するから。
0045デフォルトの名無しさん
05/03/04 10:59:150046デフォルトの名無しさん
05/03/04 11:14:36fgets使う意味でもさ。
0047デフォルトの名無しさん
05/03/04 11:18:340048デフォルトの名無しさん
05/03/04 11:21:37状況によるんじゃ。
テキストファイル 「全般」 に対して処理することが要求されるなら、
一行の文字数によって、無条件に読めない部分があってはならない。
プログラムのconfigファイルを処理したいなら、そのconfigファイルの仕様によって変わる。
configファイルでは(おそらくコンソールの横幅との歴史的関係で)一行80文字くらいにすることが多い。
この場合は1024文字でも(あるいは256文字でも)差し支えないだろう。
最も、configファイルに限定するなら、boost::program_optionsの使用を検討した方が良いかもしれない。
付け加えるなら、行という概念で扱うより、XMLなど行依存のないフォーマットを採用するのも手だ。
クラスのコンストラクタあたりに
class X {
const size_t size_;
public:
X(const size_t& size = 1024) : size_(size) {};
};
とデフォルト値を忍ばせる手もあるのかな。スマートじゃないな。
0049デフォルトの名無しさん
05/03/04 11:22:580050938
05/03/04 11:26:44A B C
/\ /\ /\
D E F G
| | | |
H .I. J K
\/ \/ \/
L M N
/\ /\ /\
O P Q R
\ | × | /
S T
\/
U
0051デフォルトの名無しさん
05/03/04 13:08:280052デフォルトの名無しさん
05/03/04 13:37:24利用用途を考えて見たが、
A B
/\ /\
D E F
まずここから用途が無い
0053デフォルトの名無しさん
05/03/04 13:59:00つまり、一行読むのに可変長で読むか固定長で読むかは
C++の範囲で選択できるんじゃないの?
C言語の関数使う必要ない気もする。
streamにしとけば、いろいろSTLの恩恵受けられる可能性あるしさ。
0054デフォルトの名無しさん
05/03/04 15:51:46std::istream::getlineは選べるが、std::stringに文字列を格納するstd::getlineは文字数を指定できない。
0055デフォルトの名無しさん
05/03/04 17:35:27Windowsのc++コンパイラでコンパイル時間が一番速いのってどれよ?gcc?やっぱVCのcl?
0056デフォルトの名無しさん
05/03/04 17:39:50コンパイル時間が速いとは? 時間が速いと言う概念は理解しかねるのだが。
#俺の時間は速いがお前の時間は遅いとでも言うのかな?
0057デフォルトの名無しさん
05/03/04 17:40:480058デフォルトの名無しさん
05/03/04 18:15:49コンパイル開始からビルドが終わるまでにかかる時間はbccが速かった。
ただしbccはnamespaceやtemplate周りがイマイチ。最適化もイマイチ。
そもそも漏れはtemplate厨なのでビルド時間はデフォルトで長いのと
言語の標準サポート具合や最適化の質のが重要なファクタなので
Win32/64環境で動作するC++コンパイラのビルドに要する時間は気にしない方がいいんじゃ。
Boostに書いてあったコンパイラリスト↓
* GNU C++ 2.95.x, 3.0.x, 3.1.x, 3.2
* Comeau C++ 4.2.45.2
* SGI MIPSpro 7.3.0
* Intel C++ 5.0, 6.0
* Compaq's cxx 6.2
* Microsoft Visual C++ 6.0, 7.0
* Borland C++ 5.5.1
* Sun WorkShop 6 update 2 C++ 5.3
* Metrowerks CodeWarrior 8.1
0059デフォルトの名無しさん
05/03/04 18:57:110060デフォルトの名無しさん
05/03/04 19:24:35>その長さのテキストファイルを想定するなら素直に全部読みきる対処するから。
全部読みきる時点で素直ではないでしょ。
単に、チョー長い行を扱う場面に遭遇しなかっただけだと思う。
普通は弾く。自分の想定外の長さは弾いてこそ、安全なわけで。
0062デフォルトの名無しさん
05/03/05 00:24:55どんな入力がくるか分からない、ということを想定する程度には、どんな仕様があるか分からない、
ということも想定するべきではないか?
その意味で 1024 超えは想定(゚�听)イラネ には釈然としないものを感じる。
0063デフォルトの名無しさん
05/03/05 00:55:48これが全てだろう。
で、どんな仕様が良いのかって話が別に存在するんだろうて。
0064デフォルトの名無しさん
05/03/05 08:00:25struct aaa{ void f(){} } a;
template<class T>struct bbb{ void f(){} } <int> b;
int main()
{
a.f();
b.f();
return 0;
}
0065デフォルトの名無しさん
05/03/05 08:24:26クラステンプレート使う意味がないジャン。
006664
05/03/05 11:17:070067デフォルトの名無しさん
05/03/05 11:58:46不可能
0068デフォルトの名無しさん
05/03/05 12:56:14あるか?
0069デフォルトの名無しさん
05/03/05 13:51:57これはだめ?
template<class T>struct bbb{void f(){}static bbb x;};
template<class T>bbb bbb::x;
int main()
{
bbb<int>::x.f();
}
0070デフォルトの名無しさん
05/03/05 13:54:55template<class T>bbb<T> bbb<T>::x;
0071デフォルトの名無しさん
05/03/05 18:16:21使いたいのですが、こうやって空関数を作らないと、コンパイルが通りません。
何か、空関数を使わないで、コンパイルを通す方法無いでしょうか?(VC6)
class CAa
{
public:
CAa() {printf("bone aa\n"); }
CAa(string s) {printf("bone(%s)\n", s); }
virtual void print() = 0;
};
class CMona : public CAa
{
void print() { printf("mona\n"); }
public:
CMona(string s) {} // ここ
};
class CGiko : public CAa
{
void print() { printf("giko\n"); }
public:
CGiko(string s) {} // ここ
};
void main()
{
string s = "hage";
CMona mona(s);
CGiko giko(s);
CAa* pAa;
pAa = &mona;
pAa->print();
}
0072デフォルトの名無しさん
05/03/05 18:24:25コンストラクタは継承されない。
よって、省略できない。
0073デフォルトの名無しさん
05/03/05 18:38:06デフォのコンストラクタは継承されるのに?
0074デフォルトの名無しさん
05/03/05 18:43:20継承されるわけではなくて、自動生成されると考えた方が分かりやすいと思う。
struct base {base(){}};
struct derived : public base{};
の場合、derivedのデフォルトコンストラクタが次のように生成される。
struct derived : public base { derived(){}};
で、これはbaseのコンストラクタを明示的に呼び出していないから、
baseのデフォルトコンストラクタが使われる。
struct derived : public base {derived() : base() {}};
結果的に、継承されたように見える。
007574
05/03/05 18:46:14デフォルトコンストラクタは自動生成されない。
たとえば、>>71の例でCMonaにデフォルトコンストラクタはない。
このことからも、デフォルトコンストラクタが継承されないと分かると思う。
0076デフォルトの名無しさん
05/03/05 19:27:15すんまそ。ここ読んで、もう一度出直します
http://www.kab-studio.biz/Programing/Codian/Cpp/05.html
0077332
05/03/06 03:48:20・仮想関数=上書きされちゃう関数
・仮想継承=共用されちゃうクラス
・仮想デストラクタ=派生デストラクタも呼ぶデストラクタ
という事になるよな?
一貫して無くないか?皆はどうやってこの紛らわしい物を納得してるんだ。
0078デフォルトの名無しさん
05/03/06 03:53:19C++流。static とかもそうだな。
0079デフォルトの名無しさん
05/03/06 04:07:38純粋仮想関数の =0; ってのもなかなか苦しいよな
0080デフォルトの名無しさん
05/03/06 04:40:330081デフォルトの名無しさん
05/03/06 06:48:07C#みたいに気持ちよくOOできないし
0082デフォルトの名無しさん
05/03/06 07:00:43使用しているコンパイラが何か(マニファクチャとバージョン)を識別するマクロが
掲載されているところを知りませんか?
0083デフォルトの名無しさん
05/03/06 09:40:480084デフォルトの名無しさん
05/03/06 10:09:41> C++使うケースだとOO使わないでtemplateにしちゃうんだよね。
それだとコンパイル時に確定しない動的バインディング使えないじゃん。
ありえんよ。
0085デフォルトの名無しさん
05/03/06 10:46:15でも、コンパイル時にできることはコンパイル時にやっちゃおう、って気にはなる。
0086デフォルトの名無しさん
05/03/06 13:01:400087デフォルトの名無しさん
05/03/06 14:22:59その手の極論を言うなら、アセンブリ言語でも OO できる、というところに辿り着く。
なんか詭弁のガイドライン通りの展開でアレだが。
0088デフォルトの名無しさん
05/03/06 15:41:030089デフォルトの名無しさん
05/03/06 15:43:160090デフォルトの名無しさん
05/03/06 16:18:28毛の生えた女と生える前の女くらいのさ。
0091デフォルトの名無しさん
05/03/06 16:26:31・毛が生えているからこそ女だ
・毛の生えていない女しか無理だ
・実は毛のない方が好きだが、生えていても問題なく行える <- 俺は、この辺
・どちらも駄目だ
0092デフォルトの名無しさん
05/03/06 18:03:07毛の生えた女と生える前の女は、雲泥の差だがな(・∀・)
0093デフォルトの名無しさん
05/03/06 18:10:26virtualな継承・・・・ 一度だけ菱形継承するためにやった
いまは反省している
0094デフォルトの名無しさん
05/03/06 20:30:550096デフォルトの名無しさん
05/03/06 21:50:06仮想継承はそれ以外に使い道は無いのかな
0097デフォルトの名無しさん
05/03/07 03:11:59外道な使い方だが、「派生禁止」。
0098デフォルトの名無しさん
05/03/07 21:00:40全然外道じゃない。そういう考え方もある。
0099デフォルトの名無しさん
05/03/07 21:14:240100デフォルトの名無しさん
05/03/08 11:59:40毛が生えていれば剃ればいいじゃない
マリーアントワネット
0101デフォルトの名無しさん
05/03/08 13:06:57■ このスレッドは過去ログ倉庫に格納されています