■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

C++相談室 part18
1 名前:v(^・^)v :03/04/13 05:02
C++に関する質問はこちらへどうぞ。
ただし質問の前にFAQに一通り目を通してください。
また、テンプレートライブラリ(STL含む)に関する質問は
専用の別スレへどうぞ。

過去スレ、関連スレ、関連リンクなどはこちら>>2-15

2 名前:v(^・^)v :03/04/13 05:02
■基本■
[Stroustrup]
禿 http://www.research.att.com/~bs/
C++に関するリンクの総本山でもあります。

[C++ Final Draft International Standard]
http://www.kuzbass.ru/docs/isocpp/
http://www.kuzbass.ru/docs/ansi_iso_iec_14882_1998.pdf

[JTC1/SC22/WG21 - C++]
http://std.dkuug.dk/jtc1/sc22/wg21/
規格書の重箱の隅的な話題などが読めます。

[C/C++ Users Journal]
http://www.cuj.com/
[Object Management Group]
http://www.omg.org/
[Association of C & C++ Users]
http://www.accu.org/

[news]
news:comp.lang.c++
news:comp.lang.c++.moderated

[ML]
cppll(日本語) http://www.trickpalace.net/cppll/
メインページにC++に関する良質なC++日本語リンク集があります。

3 名前:v(^・^)v :03/04/13 05:03
■Document■

C++FAQ Lite http://www.parashift.com/c++-faq-lite/
C++FAQ(日本語) http://www.bohyoh.com/CandCPP/FAQ/
Cとその仕様を比較しながらの解説なので分かりやすい。
*** 質問の前に必ずこの二つに目を通してください ***

[STL]
http://www005.upp.so-net.ne.jp/episteme/html/stlprog/
Standard Template Library プログラミング on the Web
リファレンス的内容。http://www.wakhok.ac.jp/~sumi/stl/
STL Programmer's Guide http://www.sgi.com/tech/stl/
[boost]
これに関しては公式のドキュメント、又はソースを読むのが一番です。
ただし日本語でいくつか有益な情報が読めます。
Let's boost http://www.kmonos.net/alang/boost/
shinichiroさん http://user.ecc.u-tokyo.ac.jp/~g940455/wp/
news news:gmare.comp.lib.boost.devel

4 名前:v(^・^)v :03/04/13 05:03
■Books■
amazon.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/
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/

5 名前:v(^・^)v :03/04/13 05:04
■Compiler■
[GCC]
http://gcc.gnu.org/
(Windows上でのPOSIX環境構築 http://www.cygwin.com)
[Borland C++ Compiler]
http://www.borland.co.jp/cppbuilder/freecompiler/
[.NET Framework SDK]
1.0 http://www.microsoft.com/japan/msdn/netframework/downloads/sdk.asp
1.1βhttp://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/MSDN-FILES/027/002/056/msdncompositedoc.xml
[MSVC] コンパイラ以外のツール、ドキュメントです。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
(一括ダウンロードの時は上のURLに続けてこちらを入力してください
default.htm?p=/msdownload/platformsdk/sdkupdate/psdk-full.htm)

なお上記三者を組み合わせたプログラミングにおいてはこちらが分かりやすいです。
http://www.geocities.com/Tokyo/Ginza/5432/documents/winprog/index.html

[DigitalMars]
http://www.digitalmars.com/
[Comeau]
http://www.comeaucomputing.com/
[intel C++ Compiler]
http://www.intel.com/software/products/compilers/
[metrowerks]
http://www.metrowerks.com/mw/default.htm

6 名前:v(^・^)v :03/04/13 05:04
■Libraries■
Boost http://www.boost.org/
STLport http://www.stlport.org/
Loki http://www.moderncppdesign.com/
LokiPort
MSVC7 http://www.geocities.com/rani_sharoni/LokiPort.html
MSVC6.0 SP5 http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport

ACE/TAO http://www.cs.wustl.edu/~schmidt/
Network、Thread、ORBなどのポータブルなライブラリ
Blitz++ http://www.oonumerics.org/blitz/
数値計算ライブラリとして人気がある、らしい
spirit http://spirit.sourceforge.net/
flex++ Bison++ http://www.idiom.com/free-compilers/TOOL/BNF-15.html
パーサジェネレータ

他ライブラリリンク集
http://www.trumphurst.com/cpplibs/cpplibs.phtml

7 名前:v(^・^)v :03/04/13 05:05
■過去スレ■
Part1 http://piza.2ch.net/tech/kako/980/980175292.html
Part2 http://pc.2ch.net/tech/kako/996/996640937.html
Part3 http://pc.2ch.net/tech/kako/1003/10038/1003832761.html
Part4 http://pc.2ch.net/tech/kako/1009/10090/1009071535.html
Part5 http://pc.2ch.net/tech/kako/1014/10142/1014217496.html
Part6 http://pc.2ch.net/tech/kako/1018/10184/1018454705.html
Part7 http://pc.2ch.net/tech/kako/1021/10217/1021787032.html
Part8 http://pc3.2ch.net/tech/kako/1025/10250/1025010364.html
Part9 http://pc3.2ch.net/tech/kako/1027/10273/1027347982.html
Part10 http://pc3.2ch.net/tech/kako/1029/10293/1029315669.html
Part11 http://pc3.2ch.net/tech/kako/1032/10323/1032345774.html
part12 http://pc3.2ch.net/tech/kako/1035/10350/1035005882.html
part13 http://pc3.2ch.net/tech/kako/1038/10380/1038031395.html
part14 http://pc2.2ch.net/test/read.cgi/tech/1041328679/
part15 http://pc2.2ch.net/test/read.cgi/tech/1043605481/
part16 http://pc2.2ch.net/test/read.cgi/tech/1045746245/
part17 http://pc2.2ch.net/test/read.cgi/tech/1047560042/

8 名前:v(^・^)v :03/04/13 05:36
■関連スレ(テンプレートを用いたライブラリ中心)■
【C++】template 統合スレ -- STL/Boost/Loki, etc.
part1 http://pc2.2ch.net/test/read.cgi/tech/1037795348/
part2 http://pc2.2ch.net/test/read.cgi/tech/1047978546/l50
【C++】Boost使い集まれ!
http://pc2.2ch.net/test/read.cgi/tech/1033830935/
STLスレッド
part1 http://pc.2ch.net/tech/kako/1004/10042/1004287394.html
part2 http://pc3.2ch.net/tech/kako/1026/10267/1026793823.html
Generic Programming with C++ Template
http://pc.2ch.net/tech/kako/1008/10085/1008593126.html

9 名前:v(^・^)v :03/04/13 05:37
■関連スレ(環境依存の話題)■
[GCC]
GCCについて
part1 http://pc2.2ch.net/tech/kako/1007/10077/1007731543.html
part2 http://pc2.2ch.net/test/read.cgi/tech/1046179115/
祝・GCC 3.0リリース http://pc.2ch.net/test/read.cgi/unix/992942337/l50
[Digital Mars]
Code of the Nerds" Digital Mars C/C++
http://pc2.2ch.net/test/read.cgi/tech/1044210976/l50
[Borland]
C++Builder相談室
part1 http://piza2.2ch.net/tech/kako/969/969458279.html
part2 http://pc.2ch.net/tech/kako/997/997074601.html
part3 http://pc3.2ch.net/tech/kako/1016/10160/1016065855.html
part4 http://pc2.2ch.net/tech/kako/1035/10355/1035596146.html
part5 http://pc2.2ch.net/test/read.cgi/tech/1045542179/l50
タダで使えるBorland C++!
part1 http://pc3.2ch.net/tech/kako/1002/10023/1002377328.html
part2 http://pc2.2ch.net/test/read.cgi/tech/1030493157/l50
[VisualC++]
VisualC++相談室
part 1 http://piza.2ch.net/tech/kako/970/970607517.html
part 2 http://piza.2ch.net/tech/kako/981/981630730.html
part 3 http://piza2.2ch.net/tech/kako/993/993186053.html
part 4 http://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 http://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 http://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 http://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 http://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 http://pc2.2ch.net/tech/kako/1036/10368/1036897197.html

10 名前:v(^・^)v :03/04/13 05:38
初心者にVisual C++を教えるスレ
part1 http://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
part2 http://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
part3 http://pc2.2ch.net/tech/kako/1038/10381/1038160750.html
part4 http://pc2.2ch.net/test/read.cgi/tech/1044196393/l50
part5 http://pc2.2ch.net/test/read.cgi/tech/1048698321/l50


VisualC++(MFC限定)相談室 MFC7.dll
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
Windows Programing for C/C++(Not MFC)
http://pc2.2ch.net/test/read.cgi/tech/1018239290/l50
COM の世界を斬る!
http://pc2.2ch.net/test/read.cgi/tech/981823340/l50
ATL 相談室
http://pc2.2ch.net/test/read.cgi/tech/1029029882/l50
managed C++ やろうぜ!!
http://pc2.2ch.net/test/read.cgi/tech/1014486422/l50

11 名前:デフォルトの名無しさん :03/04/13 08:53
乙カレー。まったりいこうよ。

12 名前:デフォルトの名無しさん :03/04/13 08:56
最近C++をはじめたのですが、main関数の書式ってどう書くのが正しいのでしょうか?

前スレを見たかぎりでは
int main()とかvoid main()とかint main(int ac,char **av) とかvoid main(void)ですよね。
それにreturn 0を書いてあったりなかったり、そもそもreturn 0ってなんですか?
windows上で動いている時などはOSに0を返してるって事ですか?

13 名前:デフォルトの名無しさん :03/04/13 09:02
>>12
○ int main()
× void main()
○ int main(int ac,char **av)
× void main(void)

> return 0
あってもなくてもよい。mainだけは、無くても勝手にreturn 0されるはず。

> windows上で動いている時などはOSに0を返してるって事ですか?
そのプログラムを呼び出したホスト環境に0を返してるってこと。

14 名前:デフォルトの名無しさん :03/04/13 09:07
>>1


15 名前:12 :03/04/13 09:17
レスありがとうございます。
Cの本ではvoid main(void)と書いてあったのですが、
× void main() × void main(void)この2つはだめなのですか?
C++ではmain関数にvoidを使わないのでしょうか、書式としてあまり美しくないという意味ですか。

16 名前:デフォルトの名無しさん :03/04/13 09:24
>>3
次からは http://boost.cppll.jp/HEAD/ を追加しる

17 名前:デフォルトの名無しさん :03/04/13 09:26
>>1
カレー

>>15
C++ではmain関数はintを返さなくてはならん、のです。
というかそれはCでも同じ。要するに、その本 を 窓から 投げ捨てろ

18 名前:12 :03/04/13 09:36
>>17
マ…マジデ、1,750円もしたのに…
今から投げ捨てます、レスありがとうございました。

19 名前:デフォルトの名無しさん :03/04/13 09:43
>>18
拾いに行くので、待ってろ!
void main(void)のほうが美しいじゃないの。


20 名前:デフォルトの名無しさん :03/04/13 09:44
K&Rにはvoidという型がないので、void main() とは書けません。
また関数や変数の定義で型を書かずにいきなり main() {…} などと
書くことができる(このような場合はintと見なされる)ので、
ANSI Cでは void main() も許されていたと思います。

C++ の規格がどうなっているかは知りませんが、
逆に C++ で void main() と書かれているソースには
お目にかかったことはありませんね。


21 名前:デフォルトの名無しさん :03/04/13 09:47
>>18
その本、安っ!! もっといいのをたくさん購入しなさい。

22 名前:デフォルトの名無しさん :03/04/13 09:51
C++が死滅するのはいつですか?

23 名前:デフォルトの名無しさん :03/04/13 09:53
http://www2.leverage.jp/start/

24 名前:デフォルトの名無しさん :03/04/13 10:13
>>20
> また関数や変数の定義で型を書かずにいきなり main() {…} などと
> 書くことができる(このような場合はintと見なされる)ので、
> ANSI Cでは void main() も許されていたと思います。

論理的つながりが全くわかりません。

25 名前:デフォルトの名無しさん :03/04/13 11:36
>>24
マヂで逝ってんの?

26 名前:デフォルトの名無しさん :03/04/13 11:59
>>20 >>25
つまり、double main() や struct str_tag { int i; int j; } main() も
ANSI Cでは認められると?

27 名前:デフォルトの名無しさん :03/04/13 12:07
> ANSI Cでは void main() も許されていたと思います。
何てことを・・・

28 名前:24 :03/04/13 12:20
>>25
マヂで説明してくれ。
 1: 「明示的に型指定子を書かないと int となる」
 2: 「ので」
 3: 「main の返値型は void でもよい」
と書いてあるようにしか読めないが、どうやったら1から3という結論が出てくるんだ。

29 名前:デフォルトの名無しさん :03/04/13 12:22
>>26
> つまり、double main() や struct str_tag { int i; int j; } main() も
> ANSI Cでは認められると?

Yes.

5.1.2.2.1 Program startup には、int main() と int main(int argc, char *argv[]) が書いてあってその後に、or in some other implementation-defined manner. と書いてあるから。

30 名前:デフォルトの名無しさん :03/04/13 12:46
>>29
ANSI C と言った場合、N739 …というか C99 の
ことは普通は指さないと思われるがどうか。

31 名前:デフォルトの名無しさん :03/04/13 17:05
STLつかうと一気に実行ファイルサイズが10倍に?!


32 名前:デフォルトの名無しさん :03/04/13 17:10
cinの(キーボードからの)入力待ちってキャンセルできるんでしょうか

33 名前:デフォルトの名無しさん :03/04/13 17:11
>>31
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない。

34 名前:デフォルトの名無しさん :03/04/13 17:14
>>33
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。


35 名前:デフォルトの名無しさん :03/04/13 17:17
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

36 名前:デフォルトの名無しさん :03/04/13 17:18
>>33
コピペネタにマジレ(ry

37 名前:デフォルトの名無しさん :03/04/13 17:18
>>35
#include <stdafx.h>

後死ね。

38 名前:デフォルトの名無しさん :03/04/13 17:19
>>37
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

39 名前:デフォルトの名無しさん :03/04/13 17:20
class foo {
int _id;
public:
foo(int id) : _id(id) { }
foo(foo& f) : _id(f._id) { }
foo& operator=(foo& f) { _id = f._id; return *this;}
virtual ~foo() {}
};
int main(int,char**){
foo bar(0);
bar = foo(1);
return 0;
}
以上のコードを gcc 3.2でコンパイルしたら
no match for `foo& = foo' operator
candidates are: foo& foo::operator=(foo&)
っていわれるんだけど、俺間違ってないよね?

40 名前:デフォルトの名無しさん :03/04/13 17:20
>>39
まちがってる

foo(const foo& f) : _id(f._id) { }
foo& operator=(const foo& f) { _id = f._id; return *this;}

コピーコンストラクタや代入演算子はconstの参照だ
一時オブジェクトは非const参照できない

41 名前:デフォルトの名無しさん :03/04/13 17:23
以上デジャブの(・∀・)ジサクジエーンでした。

42 名前:デフォルトの名無しさん :03/04/13 17:24
>>40
まだやるつもりだったのにー

43 名前:デフォルトの名無しさん :03/04/13 18:00
shade_transform.obj : error LNK2005: "double * r_inter" (?r_inter@@3PANA) はすでに
search_joint_point.obj で定義されています

とかいうエラーが出るんですけど、どうしたらいいのでしょう?

下の文を書いたヘッダファイルを3つのファイルで
incluedしてるのですが、何が悪いのか分かりませんので
お願いします。

#ifndef VARIABLE
#define VARIABLE
double r_inter[4] = { 0.237857 , -0.052922 ,-0.113636 , -0.05279 };
#endif

44 名前:デフォルトの名無しさん :03/04/13 18:12
>>43
外部リンケージを持つ配列が複数定義されているのが悪い。

・宣言と定義を分ける(外部リンケージの配列定義を一つにする)
・constを付ける(内部リンケージにする)

45 名前:デフォルトの名無しさん :03/04/13 18:15
constつけると解決しました。
ありがとうございます。

46 名前:44 :03/04/13 18:26
>>45
ほんとに理解したのか?
例は出さずにリンケージの話だけ答えとけばよかったかな。

47 名前:デフォルトの名無しさん :03/04/13 19:15
音楽再生機能を持たせたいのだが参考になるものないかなぁ・?

48 名前:デフォルトの名無しさん :03/04/13 21:14
>>45
>>46 の言う通り、その方法でホントに良いのか ?
その数値が何示すかわからんけど、修正する時は両方のファイル共に修正しないといけなくなるぞ。
extern について調べるべきだと思う。

49 名前:デフォルトの名無しさん :03/04/13 21:28
進行早いな。
>>29
実装依存->結果どうなるかも実装依存
ということ。

>>47
OSやデバイスによって書き方が激しく違う。
適切なスレに行くべし。


50 名前:デフォルトの名無しさん :03/04/14 07:31
>>49
じゃあ何処逝けばいいですか

51 名前:デフォルトの名無しさん :03/04/14 10:52
すんませーん STL 学び始めたばっかりなんですが
コンテナって 後始末に明示的にデストラクタ呼び出さなくても
良いのですか?

本のサンプルみてても とくに呼び出さず終了してますが
プログラム終了時に自動でメモリ解放してくれる?
そんな便利じゃないですよねえ


52 名前:51 :03/04/14 10:58

すんません よくわからない文章ですね
つまり デストラクタを自分で実装しない構造体型
のコンテナを作ってるんですが

どのようにメモリを解放しているか
よくわからないんです

53 名前:デフォルトの名無しさん :03/04/14 11:00
>>51
コンテナの自動変数はスコープアウト時に自動でメモリも解放する。
そんな便利なものなのです。

54 名前:デフォルトの名無しさん :03/04/14 11:01
>52
> デストラクタを自分で実装しない構造体型

これなーに?
よけいにわからなくなった。

55 名前:51 :03/04/14 11:14
>>51
アリガトです 安心しました

>>54
失礼 組込型メンバのみの構造体ってことです
メモリ確保も自分でやってないので
コンストラクタもデストラクタも書いてないという...
つもりだったんですが よけいわかりにくいですね


56 名前:デフォルトの名無しさん :03/04/14 11:56
勝手な造語を乱造するのはやめてくだちぃ

57 名前:デフォルトの名無しさん :03/04/14 12:01
ポインタが好き。


58 名前:デフォルトの名無しさん :03/04/14 12:08
リファレンス型は好きだけどC系のポインタの扱いは鬱

59 名前:デフォルトの名無しさん :03/04/14 12:32
末尾に'\0'のついたchar型の配列の文字列は「Cスタイル(の)文字列」と言うんですよね?
ぼーよーにはNTBSって書いてあるんですけど・・・・

60 名前:デフォルトの名無しさん :03/04/14 13:15
class Base;
class Hasei1 : public Base;
class Hasei2 : public Base;
とありまして, 使う側は"base.h"だけ知っていれば問題無いですよね。
ところが,ファイルに保存した情報からnewしようとすると
具体的な"hasei1.h"や"hasei2.h"が必要になってしまいます。
これはなんとかならないものでしょうか?
意味不明ならスマソ

61 名前:デフォルトの名無しさん :03/04/14 13:20
>>60
必要なのはあたりまえ

必死で意味を読み取ろうとしたんだがhasei1.hで定義されているクラスを
それを読み込まずに宣言したいとしか読めん

62 名前:60 :03/04/14 13:24
補足しますと
string className;
ReadClassNameFromFile(className);
Base* base = new className;    // ←!!!
みたいなことができないものでしょうか?

63 名前:60 :03/04/14 13:24
>>61
そのとうりです・・・

64 名前:デフォルトの名無しさん :03/04/14 14:02
string型の文字列を、char*へ変換するにはどうしたらよいですか?
よろしくお願いします。

65 名前:デフォルトの名無しさん :03/04/14 14:05
c_str()

66 名前:64 :03/04/14 14:22
>>65
レスありがとうございます。
そうだと思ったのですが。
const char*型は、 char*型へ変換できないっていうエラーが出ます。

67 名前:デフォルトの名無しさん :03/04/14 14:27
>60
問題点
1) >>62 やりたいことはわからんでもないが
 マクロじゃないんだから型名を変数で置き換えなんてできないぞ
 まだやるなら
 int classKind;Base* base=NULL;
ReadClassKindFromFile(classKind);
switch(classkind) {
 case CLASS_HASEI1:base = new HASEI1;break;
 case CLASS_HASEI2:base = new HASEI2;break;
default:dataerror();break;
}
2)こうしたところで、HASEI1を解決するためには
 "hasei1.h"をインクルードしなきゃいけないのは 当然。


68 名前:デフォルトの名無しさん :03/04/14 16:59
>>66 64
1.受け取る側が値を変更しないならそちらをconst char*にする
2.値を変更せずかつ書き換え不可ならconst_castを使う
3.値を変更するなら適当に領域を確保してコピーすべきなのでは

>>67
ClassFactoryを使えば"hasei1.h"のインクルードは不要になるのでは?
もちろんClassFactoryのほうはインクルードが必要だけど(w


69 名前:デフォルトの名無しさん :03/04/14 17:03
>>66
書き込むためのchar*が必要ならstd::vector<char>で代替できる。

70 名前:64 :03/04/14 17:57
>>68>>69
ありがとうございます。たすかりました。

71 名前:60 :03/04/14 19:57
>>67
なるほど。よく考えれば当然ですね。
生成以外は抽象的に扱えるのでここもなんとか,と思いましたが
知らないものを作るのは無理か
>>68
ちょっとすっきりしますね。考えてみます。

テンプレート?を駆使してグローバルなmapにコールバック関数を登録し,
動的に照会してnewする方法をとれば,依存ゼロが可能なようですが
大変そうなので,ClassFactoryがよさそうかなと思います。
ありがとうございました。

72 名前:デフォルトの名無しさん :03/04/14 20:29
C++ではヌルポインターはNULLマクロを使うよりも0と書いた方がいいですか?

73 名前:72 :03/04/14 20:30
多分#define NULL 0となっていると思いますけど、一応。

74 名前:デフォルトの名無しさん :03/04/14 20:40
可読性考えてNULL入れておいたほうが無難だと思う。

75 名前:デフォルトの名無しさん :03/04/14 20:40
おれは0を使う。
NULLが定義してあるヘッダをインクルードするのがメンドクサイ。

76 名前:デフォルトの名無しさん :03/04/14 20:51
foo(bar*);
foo(int);

foo(0);
どっちが呼ばれるんだっけ?

77 名前:デフォルトの名無しさん :03/04/14 20:55
後者だがそんなオーバーロードをする奴とは仕事をしない


78 名前:デフォルトの名無しさん :03/04/14 22:51
>>32

79 名前:デフォルトの名無しさん :03/04/14 23:31
呼び出す側が注意できるやつならば、特に問題なし。

オーバーロードするときは
型の第一候補が見つからないときに起きる
暗黙の標準変換のことも考慮しないとやばいわな。

80 名前:デフォルトの名無しさん :03/04/15 01:20
#include <memory>

struct B {};
struct D : B {};

int main() {
    std::auto_ptr<D> bp6(std::auto_ptr<B>());
    //bp6.reset();
    return 0;
}
gcc(3.2.2,2.9.5とも)でこれをコンパイルすると通る上に、//の
部分のコメントを外すと
hoge.cc: In function `int main()':
hoge.cc:8: request for member `reset' in `p', which is of non-aggregate
type `auto_ptr<D> ()(auto_ptr<B> (*)())'
とか言われるんだけど、これってバグだよね?
ちなみに
std::auto_ptr<D> bp6(std::auto_ptr<B>(0));
だと予想通りの挙動になる。

81 名前:デフォルトの名無しさん :03/04/15 01:22
std::string s("10");
int i = atoi(s.c_str());

文字列を数字に変換するのってこれでいいの?
とくにatoiとかをC++で使っていいのかYOとか思ってさ。

82 名前:デフォルトの名無しさん :03/04/15 01:25
boost::lexical_cast を使いましょう。
せめて std::stringstgream を使いましょう。
それもわからなければ、#include <cstdlib> として std::strtoul()
あたりをつかいましょう。

83 名前:デフォルトの名無しさん :03/04/15 01:29
Print(char *)
Print(int)
は普通にあるだろ。

84 名前:デフォルトの名無しさん :03/04/15 01:50
g++ってgccのフロントエンドなんでしょ?
以前は、shellで書いてあったとか何かの本で読んだ記憶がある。

いまのg++って実際にはどんな処理をしてるの?

85 名前:デフォルトの名無しさん :03/04/15 01:50
はつみみです。

86 名前:デフォルトの名無しさん :03/04/15 01:51
>>80
> std::auto_ptr<D> bp6(std::auto_ptr<B>());

そりゃ関数宣言だな。

87 名前:デフォルトの名無しさん :03/04/15 01:54
VC++4.0のシリアルください

88 名前:デフォルトの名無しさん :03/04/15 02:02
>>83
そんなときはchar*を捨ててstd::stringにしる。

89 名前:デフォルトの名無しさん :03/04/15 02:10
>>84
C++のコンパイル


90 名前:デフォルトの名無しさん :03/04/15 02:14
>>84
cpp0 cc1plus collect2 ld

91 名前:デフォルトの名無しさん :03/04/15 02:19
>>84
g++は最初からネイティブだったと思う。
ベル研の C++ (たぶん最古のC++処理系) は C++ -> C のトランスレータ。

92 名前:80 :03/04/15 02:59
>>86
確かにエラーを見ても、関数宣言だと思われているみたいだけど、
どうしてそうなるわけ?引数部分はstd::auto_ptr<B>()だから、
型じゃなくコンストラクタの呼び出しでは?

93 名前:デフォルトの名無しさん :03/04/15 03:00
>>80
バグだな

94 名前:デフォルトの名無しさん :03/04/15 03:14
class std::auto_ptr<D> bp6(std::auto_ptr<B>());

95 名前:デフォルトの名無しさん :03/04/15 03:15
>>92
http://www.kuzbass.ru/docs/isocpp/stmt.html#stmt.ambig

96 名前:デフォルトの名無しさん :03/04/15 03:28
>>95
スマン、俺の見た限りでは見つけられなかったんだが引用してほしい。

97 名前:デフォルトの名無しさん :03/04/15 04:02
>>91
gpp という名の c++ -> c トランスレータを使った事があるが、これが
g++ の前身かと記憶してます。
10年以上前の話だが...

98 名前:デフォルトの名無しさん :03/04/15 04:04
int f(int x);
これは、「int型の引数を一つ受け取りint型の値を返す関数」の宣言。
int f(int);
これはさっきのと同じ意味の関数宣言。
つまり、仮引数リストでは、宣言子は必要ない。

int F(int g());
これは、「『引数を取らずint型の値を返す関数』型の引数を一つ受け取りint型の値を返す関数」の宣言。
で、仮引数リストでは、宣言子は必要ないので・・・。
int F(int());
これも実は、さっきのと同じ意味の関数宣言。

つまり、(つづく)

99 名前:デフォルトの名無しさん :03/04/15 04:05
Tが型名だとすると、
T a(T());
は、
「『引数を取らずT型の値を返す関数』型の引数を一つ受け取りT型の値を返す関数」の宣言と読める。
しかし同時に、「T()を初期化子とするT型の変数」の宣言にも見える。
これらは実際曖昧で、曖昧さを解決するための鍵は、T()を式とするか、宣言とするかである。

んで、[6.8 -1-]。
〜引用〜
An expression-statement with a function-style explicit type conversion
as its leftmost subexpression can be indistinguishable
from a declaration where the first declarator starts with a (.
In those cases the statement is a declaration.
〜引用おしまい〜
〜引用訳〜
関数スタイルの明示的型変換を最も左の式とする式文は、
最初の宣言子が「(」で始まる宣言と区別できない。
そのような場合、その文は宣言である。
〜引用訳おしまい〜

「式文」ってなってるからちょっと怪しいけど、上記の曖昧さは
このルールで解決される。

100 名前:デフォルトの名無しさん :03/04/15 04:06
ふぅ。
ついでに100でも取っとくか。

あー、Effective STLにも書いてあっただろ。

101 名前:デフォルトの名無しさん :03/04/15 04:08
おぉっと。
>>99
ちょっと誤訳だ。
s/区別できない/区別できない場合がある/


102 名前:デフォルトの名無しさん :03/04/15 04:26
>>99
ちがくないか?
その部分は
T(a)++; が式(aを引数にTのコンストラクタを呼び出し、それをインクリメント)
T(f) = { 1, 2 }; が宣言(T型のfを宣言し、初期値をセット)
を人間が目で見てよくわからないから区別する方法を解説してるんだろ?

それに
int F(int g());

int F(int());
と書けるってのは聞いたことが無いし、VC++ではこれはintの変数になったよ。
int F( int(*)() );
ならわかるんだが。

そのページの最後の
T(*g)(double(3));

In the last example above, g, which is a pointer to T, is initialized to double(3).
って書いてある。

103 名前:デフォルトの名無しさん :03/04/15 04:40
Cの話なんですが
動的構造体変数を宣言する時は
構造体を定義した際に、動的変数とは別に変数宣言をしなければならない
のでしょうか?

104 名前:あぼーん :03/04/15 04:42
あぼーん

105 名前:98-101 :03/04/15 04:55
>>102
まずいところを誤訳したかな。
宣言と式の曖昧なところを宣言として解決するのは、
文全体をパースしてもなお曖昧さが解決できない場合の最後の手段。
T(a)++;
これは演算子が続いているので式とされる。
T(f) = { 1, 2 };
これは初期化リストが続いているので宣言とされる。
人間の目で見ても明らかだと思うが・・・。

> 聞いたことが無いし、VC++ではこれはintの変数になったよ。
聞いたことが無いのを理由にするつもり?
そうそう、これのせいでboost::functionのテンプレート引数が
ちょっとかっこ悪くなる。

いい引用元みつけた。
http://www.kuzbass.ru/docs/isocpp/decl.html#dcl.ambig.res
文の曖昧さ解決(>>99)が宣言についても同様に起こることが明記してあるし、
この話にぴったりの例も載ってる。

106 名前:デフォルトの名無しさん :03/04/15 05:10
>>103
いや、べつに。

107 名前:103 :03/04/15 05:19
struct test
{ int n1;//アダプタに存在するモードの総数
int n2;
}c, *pc;
こう定義されている場合にこの動的構造体変数を宣言するには
pc = new test;
ですよね?
こう書けますか?
pc pc2 = new p;


108 名前:103 :03/04/15 05:21
最後に一文間違えました・・
pc pc2 = new c; でした

109 名前:デフォルトの名無しさん :03/04/15 05:25
>>105
お、ホントだ
int a = 0;
S b( S( 0 ) ); // コンストラクタ
S c( S( a ) ); // 関数

面白いな。
それにしてもこれがあいまいになっちまうくらいなら別の表記があるんだからそっちだけ使ってれば良かったんじゃね?

110 名前:デフォルトの名無しさん :03/04/15 05:26
>>107
×pc pc2 = new c;
○test* pc2 = new test(c);

型名と変数名を区別しる。

111 名前:デフォルトの名無しさん :03/04/15 05:29
おそらく107は最初にtypedefを入れたかったんだと思われ

112 名前:デフォルトの名無しさん :03/04/15 05:32
>>111
typedefなら、
pc = new test;
が書けない。

113 名前:103 :03/04/15 05:42
typedef struct tag_DisplayModeData
{
D3DDISPLAYMODE DisplayMode;//ディスプレイモードデータ構造体

tag_DisplayModeData* lpNext;//次構造体へのポインタ
tag_DisplayModeData* lpBack;//前構造体へのポインタ

}DISPLAYDAT,*LPDISPLAYDAT;

typedef struct tag_EnumDispChain
{
UINTModeCount;//アダプタに存在するモードの総数

intAdptPoint; //このアダプタの評価点数
D3DCAPS8AdptCaps; //このアダプタのハードウェア情報
DISPLAYDATDispDataTop;//ディスプレイデータ先端ポインタ
DISPLAYDATDispDataEnd;//ディスプレイデータ終端ポインタ
tag_EnumDispChain*lpNext;//次チェイン先端へのポインタ
tag_EnumDispChain*lpBack;//前チェイン先端へのポインタ
}ENUMDISP,*LPENUMDISP;

LPENUMDISP pEnumDispTop = new ENUMDISP;
サンプルプログラムでは、動的変数を宣言するのに型名を使わずに変数名で宣言しているのですが
ビルドできました。どういう書き方なんでしょうか?

114 名前:デフォルトの名無しさん :03/04/15 05:44
>>113
typedefを学べ。

115 名前:103 :03/04/15 05:45
>>111
>>112
勉強し直します。有難うございました

116 名前:あぼーん :03/04/15 06:16
あぼーん

117 名前:デフォルトの名無しさん :03/04/15 11:08
>>97
最初はトランスレータが結構あったね。

118 名前:デフォルトの名無しさん :03/04/15 11:33
じゃぁ、トランスレータ使えば、
多態性やら、STL使ったプログラムなんかも、Cになっちまうって事ですかよ!
ワッショイ!

119 名前:デフォルトの名無しさん :03/04/15 12:58
>>118
アフォですか?
だれかトランスレータ使えっていってる香具師いたっけ?

120 名前:デフォルトの名無しさん :03/04/15 16:00
>>118
どのみち最後は機械語になるんだが。
つーことで、別になんの不思議もないが?

121 名前:デフォルトの名無しさん :03/04/15 19:00
>>118
ちなみに多態は構造体のメンバに関数ポインタを置くことであっさり実現できる。
テンプレートはプリプロセッサによるジェネリックなプログラミングと似てる。

だからなんだってわけではない。

122 名前:デフォルトの名無しさん :03/04/15 21:03
教えてください。初歩的なことですみません。
配列をスレッドで扱うときの処理です。
例えば
for(iterator・・・){
処理;
remove(0);
}
のように複数スレッドで同じ配列をみるようにしたとき、
タイミングによってはバグになると思います。
これを、便利ライブラリとかを使わずにテクニックで解決するには
どうしたらいいでしょうか。

123 名前:デフォルトの名無しさん :03/04/15 21:25
122:10: `便利ライブラリ' undeclared
122:10: `テクニック' undeclared


124 名前:デフォルトの名無しさん :03/04/15 21:31
122:2: `配列' declared but not used

125 名前:デフォルトの名無しさん :03/04/15 21:40
>>123 124
バカにしたい気持ちはわかるが初心者なので大目に見てください。
クリティカルセクションとかいうのを使いたいのですが、標準のライブラリ
のなかにあるのかどうか、なんていう名前なのかも分かりません。
それとも手作りでできるものでしょうか?

126 名前:デフォルトの名無しさん :03/04/15 21:47
125:2: warning: 2ch tech forbids such declaration

127 名前:デフォルトの名無しさん :03/04/15 21:49
>>125
・C++の規格はスレッドなるものを全く考慮に入れてないので、標準ライブラリにはない。
・準標準なら boost::thread
・余計なもんいれたくないなら、pthread なり Windows API なり、
 開発環境でさいしょっから使えるものを使え。「スレッドの作り方」
 がわかるんなら同じとこを探せばCriticalSectionでもMutexでもわかるはず。
・手作りしたいなら Petersonのアルゴリズム、とかでググれ。ネタだが。

128 名前:デフォルトの名無しさん :03/04/15 22:32
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < >>32 マダー?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |  夕張メロン   |/


129 名前:デフォルトの名無しさん :03/04/15 22:33
>>128 EOFつっこめよ。

130 名前:128 :03/04/15 22:38
>>129
いや、そうじゃなくて、プログラム側で

131 名前:デフォルトの名無しさん :03/04/15 22:40
>>130 ならcinに待たせてるのが間違いだろ。

132 名前:128 :03/04/15 22:45
>>131
そうです。いつまでも待ってないで処理を取り返したいんですが。

133 名前:デフォルトの名無しさん :03/04/15 23:05
>>132 できねぇってこった。

134 名前:128 :03/04/15 23:38
                 ┌─┐
                 |も.|
                 |う |
                 │来│
                 │ね│
                 │え .|
                 │よ .|
      ヌルポ   ゴルァ  │ !!.│
                 └─┤    プンプン
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎

135 名前:デフォルトの名無しさん :03/04/16 00:20
おまえ実はそのAA貼りたかっただけだろ!

136 名前:デフォルトの名無しさん :03/04/16 00:31
>>135
わろた


137 名前:125 :03/04/16 06:32
>>127
ありがとうございます!
標準にはないんですね。
今あるやつを探してみます。

138 名前:デフォルトの名無しさん :03/04/16 06:59
>128
UNIXなら、alarmでもつかえば。

139 名前:デフォルトの名無しさん :03/04/16 13:06
他のスレで質問したのですが、答えが得られなかったので、このスレで質問します。
C++はGetMessageの内部ループで待つメッセージループ型と、PeekMessageと組み
合わせることでGetMessageのあるwhileでのループで待つメインループ型の2つが
ありますが、本や情報サイトに載ってるのは殆どがメッセージループ型ですよね。
メインループ型を使えば、時間の処理などを使いやすくなる利点が生まれるのですが
デメリット等があるのですか。

140 名前:デフォルトの名無しさん :03/04/16 13:13
- GetMessageの方がすっきりしてて綺麗。
- Windowsプログラミングの話題なのに、
 C++一般の話題として話してるのが馬鹿っぽい。
- "時間の処理などを使いやすくなる利点が生まれる"という記述が意味不明。


141 名前:139 :03/04/16 13:27
>>140 お答えありがとうございました。

142 名前:デフォルトの名無しさん :03/04/16 15:58
CFront探してみたんだが行方不明みたいだな…

143 名前:デフォルトの名無しさん :03/04/16 16:24
標準コンテナは Copy on Write ですか?

144 名前:デフォルトの名無しさん :03/04/16 19:05
C++がカーネルとかシステムに近いところに向かない理由を
仮想関数関連以外で述べて。
お願い。

145 名前:デフォルトの名無しさん :03/04/16 19:13
>>144
べつに向かないこともないんでは?

146 名前:デフォルトの名無しさん :03/04/16 20:04
仮想関数がシステムに近いところで妙な挙動をするって事もないでしょ。



147 名前:デフォルトの名無しさん :03/04/17 00:40
>> 144
ターゲットによっては、C++ではあまり最適化されなくて遅いって事はある。

148 名前:デフォルトの名無しさん :03/04/17 00:43
>>144
COMみたいな仕組みを用意しとかないと、
バイナリ互換性がとりにくいとか、
compiler間のmangling schemeの違いを吸収できない。

149 名前:デフォルトの名無しさん :03/04/17 00:43
>>144
C++を良く知らない人が多い、とか・・・

150 名前:デフォルトの名無しさん :03/04/17 01:14
誰か cint の C++の規格準拠度を上げてくれないかニャー

151 名前:山崎渉 :03/04/17 15:17
(^^)

152 名前:デフォルトの名無しさん :03/04/18 08:48
標準CはANSIのみ使ったコードですが、標準C++とは何ですか?

153 名前:デフォルトの名無しさん :03/04/18 08:50
C++にも標準規格があるんだが。

154 名前:デフォルトの名無しさん :03/04/18 10:07
BeOSはC++で標準APIがC++のインターフェースだったような。
システム自体どこまでC++で書かれているかは知らないけど。

155 名前:デフォルトの名無しさん :03/04/18 10:44
すいません、質問ですがC++でPerlのIO::SocketやHTTP::Liteモジュールの
ようなものはありますか?
C++に、という表現は変ですね、そのようなクラスライブラリみたいなものは
存在しますか?
例えばCIOSocketやCHttpのような。
C++の勉強がてらPerlのプログラムを移植してみようと思うのですが、あるな
らばそのリソースとか教えて頂けないでしょうか。



156 名前:デフォルトの名無しさん :03/04/18 10:52
OSとコンパイラをのべたまへ

157 名前:155 :03/04/18 10:54
すいません、Win32環境下のコマンドラインでBC++もしくはGCCを想定しています。


158 名前:デフォルトの名無しさん :03/04/18 11:01
標準のソケットのクラスライブラリというものはないよ。
Windows標準だとWin32APIのWinSock/WinInetがある。
C++Builder/Visual C++にはそれぞれコンポーネント・クラスがある。

http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

159 名前:155 :03/04/18 11:16
レスありがとうございます。
ということはFreeな環境下、もしくはコンポーネントに頼らない場合は
Win32APIを直接操作してラッピングするようなクラスを自前で設計し
てやる以外に方法はないということでよろしいでしょうか?

と、レスを書いている間にACEというものを見つけたので少し見てみる
事にします。

以下引用(ttp://blue.sakura.ne.jp/~turugina/prog/ace_inst.htm)
そこで登場したのがACEである。 ACEは、Windows、MacOSX、UNIX等、
様々なプラットフォーム上で動作する主なC++コンパイラーで動作する、
ネットワークプログラム用のミドルウェアである。 ACEに含まれるクラス
群は各プラットフォーム間のネットワークコード上の差異を吸収し、さら
にネイティブよりも型安全なコーディング環境を提供してくれる。

http://www.cs.wustl.edu/~schmidt/ACE-overview.html


160 名前:デフォルトの名無しさん :03/04/18 11:24
質問です。
c++で、
標準の 演算子のオーバーロードは、できるのでしょうか?
(クラスの演算子では、ありません)
+ , - , * , / とかです。



161 名前:デフォルトの名無しさん :03/04/18 11:27
>>160
できません。できたらとしたら曖昧になってしまう。

162 名前:デフォルトの名無しさん :03/04/18 12:21
インターフェースというのは純粋仮想関数のみのクラスのこと
という理解であってますか?

163 名前:デフォルトの名無しさん :03/04/18 12:34
>>162
間違っています。

164 名前:デフォルトの名無しさん :03/04/18 12:35
boost::.net
でないかな・・・。

165 名前:デフォルトの名無しさん :03/04/18 12:58
>>160
ユーザー定義型を使えば、できる。
組み込み型はだめ。

enum E {};
E operator + ( E , E );
E operator - ( E , E );
E operator / ( E , E );
E operator * ( E , E );

E foo( E e1 , E e2 )
{
  return e1 + e2 * e1 - e2 / e1;
}


166 名前:155 :03/04/18 13:20
>>164
boost::.netで検索かけてみたのですが発見できませんでした。
よろしければリソースへのリンク等お教え頂けないでしょうか?


167 名前:デフォルトの名無しさん :03/04/18 13:26
>>166
でないかなってのはただの希望かと

168 名前:デフォルトの名無しさん :03/04/18 14:49
ACEは国内情報がほとんどないよ。書籍は出てるけど。
C/C++やるならBSDソケットくらいはやっとけという気はする。

169 名前:164 :03/04/18 18:36
>>166
すんません、単なる希望です。

boost::_3D
boost::window
とかもでないかな。
って、スレ違いだな。

170 名前:デフォルトの名無しさん :03/04/18 19:42
boost::socket っていうのは Boost の Wiki にあるよ
はやくでないかな

171 名前:155 :03/04/19 01:09
ふむふむ、やっぱりsocketは手前で使えるほうが何かと便利ですよね。
boost::socketに期待しつつwinsockの勉強してみようと思います。
色々とありがとうございました。


172 名前:デフォルトの名無しさん :03/04/19 01:19
デフォルトコンストラクタの無い基底クラスの
コンストラクタを派生クラスのコンストラクタ
の初期化指定子でする書き方ってどうやるんでつか?

173 名前:デフォルトの名無しさん :03/04/19 01:37
>>172
class Super
{
public: Super(int){}
};

class Sub : public Super
{
public: Sub():Super(1){}
};

174 名前:デフォルトの名無しさん :03/04/19 01:57
class Super
{
public: Super(int){}
};

class Sub : public Super
{
public: Sub(){
Super(1);
};

これもあり?

175 名前:デフォルトの名無しさん :03/04/19 02:10
>>174
ない。Superクラスの一時オブジェクトが作成されて瞬時にデストラクトされるだけ。

176 名前:デフォルトの名無しさん :03/04/19 16:45
基底クラスですか?基本クラスですか?
どっちが一般的な呼び方?
それとも違うもの?
私が読んでいる本には基本クラスとかいてあります。
(決定版はじめてのC++技術評論社)

177 名前:デフォルトの名無しさん :03/04/19 16:58
>>176
どっちも英語にしたら base class。
俺は基底の方が好き。


178 名前:デフォルトの名無しさん :03/04/19 18:10
俺は「ベースクラス」だなw

179 名前:  :03/04/19 19:23
vc7のSTLは安心して使えまつか?

180 名前:デフォルトの名無しさん :03/04/19 19:27
VC++.NET2003のANSI準拠度は98%。

181 名前:デフォルトの名無しさん :03/04/19 19:30
>>180
あとの2%はなんですの?

182 名前:デフォルトの名無しさん :03/04/19 19:31
>>181
MSに聞いてくれよ

183 名前:デフォルトの名無しさん :03/04/19 19:33
>>180
6.0は99%だぞ

184 名前:デフォルトの名無しさん :03/04/19 19:34
いつでるの? > 2003

185 名前:デフォルトの名無しさん :03/04/19 19:35
>>184
定番の6/30

186 名前:デフォルトの名無しさん :03/04/19 19:36
なんでたったの1年で新しいバージョンを出すの?
6.0からは4年もかかったのに

187 名前:x :03/04/19 19:37

char *buff;

buff = moji("文字列");

printf("buff=%s",buff);
------------------------------
buff=文字列


と言う風に、文字列を=で渡すことってできますか?


188 名前:デフォルトの名無しさん :03/04/19 19:38
>>183
6.0時点じゃまだ標準C++にすら準拠してねーよ(わらい

189 名前:デフォルトの名無しさん :03/04/19 19:38
>>187
そのmoji関数がstrdup(標準じゃないけど)関数みたいなものなら。
std::stringなら=でコピーできる。

190 名前:デフォルトの名無しさん :03/04/19 19:39
今のVS.NET買わなくてよかった

191 名前:デフォルトの名無しさん :03/04/19 19:41
>>187
C++のスレで聞かなくてもいい質問なんじゃないの?

192 名前:デフォルトの名無しさん :03/04/19 19:42
>>190
自分は期待して購入し裏切られました。

193 名前:デフォルトの名無しさん :03/04/19 19:42
>>192
自分はWin98SEを使っているという時点で断念しました。


194 名前:デフォルトの名無しさん :03/04/19 19:50
くそー、いつの間にか新スレがー!

195 名前:x :03/04/19 19:54
>>189
>moji関数がstrdup(標準じゃないけど)関数みたいなものなら。

どうすればいいんですか?


196 名前:デフォルトの名無しさん :03/04/19 19:55
>>195
だからさー、それはごく初歩のCの質問じゃないのか?

197 名前:デフォルトの名無しさん :03/04/19 19:56
>>195
<string>インクルードしてstd::stringを使おうよ。

198 名前:デフォルトの名無しさん :03/04/19 20:01
>>195
char*は文字列型ではありません!単なるポインタです!
組み込みではないものの、C++には文字列型stringがあります!これを使いましょう!

199 名前:デフォルトの名無しさん :03/04/19 20:01
つーか、.NETに間に合わなかった分が2003だと思ってるんだが。
当初は.NETの時点でそれなりに標準C++に準拠しようとしてたらしいし。

200 名前:x :03/04/19 20:09
>>197
Linuxで
#include <map>
#include <iostream>

used namespaced std

として、gcc -osample sample.cpp
とすると、インクルードだけでエラーがでる。なんでだろう?
>>198
char *operator=(moji a); ・・(略)

オペレータかなにかで実装は不可能ですか?



201 名前:デフォルトの名無しさん :03/04/19 20:11
used namespaced std

なんだこれ(;´Д`)

using namespace std
って書きたかったのか?

202 名前:x :03/04/19 20:11
>>201
多少の記述違いはきにしないで、すまそ。

203 名前:デフォルトの名無しさん :03/04/19 20:12
C言語はどこで作られたんですか?

204 名前:デフォルトの名無しさん :03/04/19 20:12
>>200
どんなエラーが出るのですか!

205 名前:デフォルトの名無しさん :03/04/19 20:13
>char *operator=(moji a); ・・(略)
>
>オペレータかなにかで実装は不可能ですか?

>>198の言ってる事が根本的にわかってないみたいなので、
まずC言語をちゃんと勉強した方がいいよ。

206 名前:デフォルトの名無しさん :03/04/19 20:14

まじめに恋愛を考える、真剣なあなたのためにこのサイトを作りました。
http://www.h5.dion.ne.jp/~psysys/index.html


207 名前:x :03/04/19 20:18
>>204
今Windowsから書きこしてるのでエラーメッセージは表示できまへん。

208 名前:x :03/04/19 20:20
>C++には文字列型stringがあります!これを使いましょう!

stringヘッダーと同等の機能を作りたい。


209 名前:デフォルトの名無しさん :03/04/19 21:05
>>208
なんで? お勉強か?

210 名前:デフォルトの名無しさん :03/04/19 21:07
もう、>>208は放置の方向で…

211 名前:デフォルトの名無しさん :03/04/19 22:20
>>x
g++

212 名前:デフォルトの名無しさん :03/04/20 01:10
コンテキスト? コンテクスト?

日本語に置き換えて読むとしたら?

213 名前:デフォルトの名無しさん :03/04/20 01:12
このスレと全然関係ないじゃん・・・

214 名前:デフォルトの名無しさん :03/04/20 01:22
>>212
ぬるぽ

215 名前:デフォルトの名無しさん :03/04/20 01:32
>>214
ガッ

216 名前:デフォルトの名無しさん :03/04/20 01:33

すまん。C++の洋書の訳版に出てきたからさ。
contextをそのままコンテキストって書いてあるんだもん。。。


217 名前:デフォルトの名無しさん :03/04/20 01:38
テキスト(text)をテクストと書くのは別に変なことじゃない。検索でもしてみりゃすぐ出てくる。

218 名前:デフォルトの名無しさん :03/04/20 01:40
>>212
関係ないが、分野によって標準的な表記が異なる外国語ってあるよな。
テキストは哲学なんかの分野だとテクストだし、
小説のジュヴナイルは競馬ではジュヴェナイルだし。

219 名前:デフォルトの名無しさん :03/04/20 01:42
>>216
文脈、事情、背景。

220 名前:デフォルトの名無しさん :03/04/20 01:43
device context: 道具事情。


221 名前:デフォルトの名無しさん :03/04/20 01:49
彼氏と彼女の事情。


222 名前:デフォルトの名無しさん :03/04/20 01:54
彼氏と彼女の旦那の事情。

223 名前:デフォルトの名無しさん :03/04/20 02:00
> 文脈、事情、背景。

寒いんだよ。
そんなの調べりゃわかることだろ?
ソフトウエア的に通じる比喩は無いかっていってんの。

224 名前:デフォルトの名無しさん :03/04/20 02:02
なんで比喩使わなきゃならないんだ

225 名前:デフォルトの名無しさん :03/04/20 02:05
>>212見たらコンテキストとコンテクストのどちらが日本語訳として正しいかを質問してるように見えるよ。

で、そんな単語だけ出されてもどんな"文脈"で使われてるかもわからないのに
どう答えればいいんだ。

226 名前:デフォルトの名無しさん :03/04/20 02:12
>>218
独語由来、仏語由来、英語由来つうのがあるのかもな

227 名前:デフォルトの名無しさん :03/04/20 02:44
じゃあ「デバイスコンテキスト」でもいいよ。
デバイスの何よ?

訳がjapaneseフレンドリーじゃないから
比喩つかって読まないと通じない。
原文ないからどうしようもないけど。

載ってたのはこれ。
「デザイン過程においてしばしば有益とされている
経験的知識や真理でも、個々のデザインにおいて、
そのコンテキストで評価が必要なものがある。」

ちなみに「デザイン過程」は「ソフトウエアの設計過程」と
脳内で置換えた。


228 名前:名無しさん :03/04/20 02:48
あちこちの板で山崎モナーのぬるぽが増殖しているが,
ここにはいないな。

229 名前:デフォルトの名無しさん :03/04/20 02:52
>>227
それなら直訳で事情、背景でも意味通るんじゃないか?「その状況で」とか。
まあ変な訳の本があることは珍しいことじゃないが、そもそもスレ違いだと思うのよ。
その文、全然C++の話じゃないじゃん。

230 名前:山崎渉 :03/04/20 02:53
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

231 名前:デフォルトの名無しさん :03/04/20 02:57
デバイスコンテキストは無理に訳さなくてもいいと思うがなぁ

232 名前:デフォルトの名無しさん :03/04/20 03:03
たまたま文はすれ違いだけど
本はC++ベッタリなんだよ。

状況か。。いけるな。 thanx

233 名前:デフォルトの名無しさん :03/04/20 03:15
「昔から「役に立つよ」と言われていることでも、
今の状況に本当に役に立つのかどうか再確認すべきだよ」くらい。

234 名前:デフォルトの名無しさん :03/04/20 03:20
冷蔵庫に牛乳があたかもしれない。


235 名前:デフォルトの名無しさん :03/04/20 03:21
問1.「あたかも」を使って簡単な文章を作りなさい。

236 名前:デフォルトの名無しさん :03/04/20 03:26
今日食べた鯖にあたかもしれない(苦しい)

237 名前:山崎渉 :03/04/20 03:32
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

238 名前:デフォルトの名無しさん :03/04/20 03:41
>>235
「あたかも」とは(多く「似る」「如し」「よう」などの語をあとに伴って)
よく似ている物事にたとえる場合に用いる語です。

239 名前:デフォルトの名無しさん :03/04/20 04:02
class base;
class derived : public base;
base::base(){func();};
derived::derived() : base(){};

derivedはfunc()を継承時上書きしてるのですが、
derivedの生成時にbase::func()が呼ばれてしまいます。
derived::func()をよびだすにはどうしたらよいのでしょうか?

また、コンストラクタはなぜvirtualにできないのか教えてください。



240 名前:デフォルトの名無しさん :03/04/20 04:10
>>239
base::baseの時点ではまだderivedの初期化が完了していないので、
オブジェクトとして存在しない。つまり呼べない。
やりたいことを具体的に書いてくれれば、代替案は見いだせるかもしれないが。

もしコンストラクタがvirtualなクラスを書いた場合、
実際の型を誰がいつ決めるか、仮に決まったとして、
どうやってコンパイラにそれを伝えるか、考えてみな。

241 名前:デフォルトの名無しさん :03/04/20 04:57
メンバ関数の中で宣言したstatic変数って、同じクラスのオブジェクトの
間で共有されてしまいますよね?
これをオブジェクトの間で共有にならなくする事って出来ますか?

242 名前:デフォルトの名無しさん :03/04/20 05:04
>>241
メンバ変数にする。

243 名前:デフォルトの名無しさん :03/04/20 05:08
>>241
これまた阿呆な質問だ!

244 名前:bloom :03/04/20 05:08
http://www2.leverage.jp/start/

245 名前:デフォルトの名無しさん :03/04/20 11:22
>>227
糞訳の典型だね。

246 名前:デフォルトの名無しさん :03/04/20 11:45
まぁそういう時期だし。

247 名前:デフォルトの名無しさん :03/04/20 12:57
>>239
boost でそんなんあったよ。

<boost/utility.hpp>
boost::base_from_member
基底クラスより先にメンバ変数を初期化

うまくできるかどうかしらんけど。

248 名前:デフォルトの名無しさん :03/04/20 15:09
データの数によって配列の数を変えたいのですが、
string s2[n];
とすると、定数にしてくれってエラーがでます。
なにか方法はありますか?

249 名前:名無し :03/04/20 15:23
new

250 名前:248 :03/04/20 15:27
>>249
ありがとうございました。


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.