[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 20:36 / Filesize : 218 KB / Number-of Response : 953
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part78



1 名前:v(^・^)v mailto:sage [2010/02/13(土) 23:18:03 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part77
pc12.2ch.net/test/read.cgi/tech/1263556932/

449 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 02:41:27 ]
>>447 そういうこと。

450 名前:442 mailto:sage [2010/03/03(水) 04:18:56 ]
>>448
>>449
ありがとうございます!

451 名前:デフォルトの名無しさん [2010/03/03(水) 07:50:18 ]
ツリーのクラス構造について質問です。
現在、以下のようなクラスを考えています。

class Base{}
class ParentBase : public Base { };
class Parent : public ParentBase { };
class ChildBase : public Base { };
class Child : public ChildBase { };

class ChildA : public Child {}
class ChildB : public Child {}
class ParentA : public Parent
{
public:
   ChildA childa;
   ChildB childb;
};
class ParentB : public Parent
{
 public:
   ParentA parenta;
};

Parentの派生クラスは、メンバ変数でChildだったり、Parentのオブジェクトの実体を保持します。(例:ParentA, B)

ここで、各Parentが保持するオブジェクトから、親オブジェクトへアクセスする方法はないでしょうか?
やりたいことは、ParentA::childaで、ParentAの関数を呼ぶ、ParentB::parentaで、ParentBの関数を呼ぶ、ということがしたいのです。

一番基底クラスのBaseクラスで、Baseクラスへのポインタ持たせてやろうと思ったのですが、そのポインタへの実体のセット方法がわからなくて、迷ってしまいました。

何かいい方法はないでしょうか?

452 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:04:37 ]
ポインタを理解したのは、確かポインタ渡し、参照渡し、値渡しの違いを知ったときだった憶えがある

453 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:15:38 ]
>>451
コンストラクタで渡すなりセットするメンバ関数を作るなり public にして設定するなり、
いろいろあるだろ。何が気に入らないんだ?

454 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:27:28 ]
struct hoge: public unary_function<int,int> {
int operator(int);
};
的な関数オブジェクトを
g++ -Weffc++ hoge.cpp
でコンパイルした場合、
warning: base class struct std::unary_function<int, int> has a non-virtual destructor
というエラーがどうしても出るのですが、
ライブラリの責任であってユーザ側からは対応しようがない、
というので正しいでしょうか?

455 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:41:08 ]
protected継承

456 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:43:09 ]
>>454 ja.lmgtfy.com/?q=%22warning%3A+base+class%22+std%3A%3Aunary_function+%22has+a+non-virtual+destructor%22

457 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 12:35:06 ]
>>456
要するにGCCがそうだと言ってるからそうだ、ということですね。
これに対するライブラリ実装者の答えが欲しいのですが・・・。



458 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 12:38:09 ]
>>457 どうしてそうなったw

459 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 12:42:54 ]
>>457
>456 のリンクをたどると、 >454 の警告に関する gcc の「バグ」報告に連れて行かれて、
その報告は今でも "NEW" として残っているんだが、何か違うものが見えるのかい?

460 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 12:46:39 ]
そう読むのか。
コメントのほうを読んで誤解してしまいました・・・。
ありがとうございます。

461 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 16:09:59 ]
>>454 が何を問題だと言っているのか判らない。
もしかして、Effective C++ 読まずに問題視してる?

462 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:27:54 ]
調子に乗って struct を class みたいに使うのが悪いんじゃね?


463 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:37:41 ]
どうせポリモルに扱わないんだからほっとけよ

464 名前:デフォルトの名無しさん [2010/03/03(水) 22:37:41 ]
>>454
どこに「エラー」って書いてあるんだよ
もしかしてエラーと警告を混同してるか?

465 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:00:41 ]
C++のキャストって長ったらしくてあまり使わないんですが,
実際C++のキャストで助かった&Cのキャストではまった
経験をお持ちの方っていますか?


466 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:08:51 ]
C++スタイルはデバッグで見つけやすい

467 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:18:38 ]
>>465
キャストは奨励できないからC++のキャストは長い。
キャストにも色々な目的があるので種類がある。目的に合わない変換不可能なものにはエラーが出る。
あらゆる変換ができるCスタイルのキャストはバグを見つけにくいので使わないほうがいい。




468 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:20:00 ]
long longな値をstd::fstreamに<<すると三桁区切りにcommaが入ってPCが爆発するんだけど
書式設定だとか弄ってcomma入れないような設定できなかったっけ?

469 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:50:17 ]
>>465
意図しない、または、意図した以上のキャストをコンパイル時に発見できる

470 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:59:55 ]
>>468
localeとfacet

thousands_sep()が返す値を確認するとよい

471 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:28:37 ]
C++スタイルのキャストでコンパイルエラーがでる度に助かっているわけだ

472 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:44:21 ]
>465
検索が簡単。

473 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 05:25:49 ]
分かってても、警告がうざい&タイプが面倒だから、使ってしまう(int)キャスト

474 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 06:50:49 ]
>>473 しね

475 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 07:30:55 ]
dynamic_castの機能はCスタイルのキャストでは実現できない

476 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 08:12:19 ]
キャストの多さは設計の不十分さを示す良い指標

477 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 10:50:11 ]
dynamic_castはゆとり
const_castはバグ



478 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 12:20:32 ]
stdの特殊化が許されてるのはswapだけですか?

479 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:28:12 ]
ていうかstatic_castも暗黙的な変換ができないポインタ変換に対して使えちゃうだろ。
static_castは甘え

480 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:33:06 ]
dynamic_castを使う設計てどっかミスってるはず
ダウンキャストするんだったら自前の仮想関数テーブル作れよって話しだ

481 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:35:39 ]
いやdynamic_castでいいだろw

482 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:37:38 ]
>>481
アップキャストした後にダウンキャストとかポリモーですらないじゃん

483 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:40:39 ]
クロスキャストなんてboostにそれ専用のがあるだろ?

484 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:43:24 ]
>>483
うるせーテーブル作らせろ

いやまじでダウンキャストとか使う場面なくね?
面倒だからやっちゃえとかならわかるんだが

485 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:54:06 ]
同意
内部でdynamic_cast使ってるboostとか糞だよな

486 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 14:14:02 ]
RTTI嫌ってるやつって厨二病みたいなもんだろ?

487 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 14:32:25 ]
RTTIは遅くなるっていうけど、実際影響がどんなもんか分からん



488 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 14:39:26 ]
RTTIで起きる速度低下の影響は自前で仮想関数テーブルを用意する場合と同じ。

489 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 14:41:41 ]
見栄の問題なのか?w

490 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 15:06:56 ]
>>489
見栄だよ
型名保持してポインタを型変換するだけだし
でも使ってない

491 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 16:48:51 ]
C++ってゲームプログラミングに使える?

492 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 16:56:09 ]
>>491
DirectX使えば、いろいろ綺麗に作れるぞ。

493 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 18:18:44 ]
>>492
取り合えず勉強してみます
ありがとう!

494 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:14:40 ]
キャストは結局のところ「正しくないかもしれないけど見逃してくれ」とコンパイラに指示している。
キャストが正しいことをプログラマーが保証しなければならない。
dynamic_cast(RTTI)もNULLが返る可能性も考えてプログラムを作らなければならない。
どんなにデバッグしても、キャストは客先でプログラムがクラッシュするかもしれない時限爆弾を抱えるようなものである。

暗黙の型変換や仮想関数であれば必ず正しい動作をすることがコンパイラが保証するので堅牢になる。
わずかな設計の見直しでリスクを減らせるんだからキャストは控えるのを勧める。


495 名前:デフォルトの名無しさん [2010/03/04(木) 20:22:37 ]
プログラムが正しいかどうかをコンパイラに丸投げする考えのほうがよっぽど危険だよ
第三者たるコンパイラが勘違いしそうな「本当は正しい」ところをマークするのがキャストだ

できちゃいけないキャストが通る理不尽な仕様は確かにあるが、それは
できることとしていいことの分別がつく人しか C++ を使うべきではないということだ

496 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:31:50 ]
キャストは影響を局所化してさらに見えないように包めばいいじゃない

497 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:35:09 ]
>>487
1万回ループさせて0.1秒差とかそんなもん

>>494
NULLが返る可能性を考えないのにdynamic_castを使うとか意味がわからん
そんなの参照と例外に狂ってるやつくらいだろ



498 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:37:50 ]
暗黙の型変換でプログラムが堅牢になると聞いて

499 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:37:59 ]
たった10000回で100msも差がでるのか。
100000000回で10msくらいでもまだ遅いのに

500 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:42:30 ]
>>499
そんな見栄を張るなよw

501 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:43:44 ]
>>478
swap以外もすべて明示的特殊化してよい。


502 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:45:32 ]
暗黙の型変換で堅牢
ハハッ

503 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 20:45:45 ]
>>500
ごめん・・・最近なにしても楽しくないし2chで見栄張る位しか生き甲斐がなくて・・・。
もう自衛隊に入るわ。最近政治がアレだし俺みたいなクズ人間は戦争で死んでも誰も悲しまないだろう。

504 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 21:04:38 ]
>>503
自衛隊がお断りだ

505 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 21:19:52 ]
>>504
もうニート生活はやだよ・・・

506 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 23:01:18 ]
普通にstatic_castしか使わない = Cのキャストでおk

static_castでエラーが出るケースなんて,経験でわかるようになる程度じゃろ


507 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 23:06:17 ]
>>506
> static_castでエラーが出るケースなんて,経験でわかるようになる程度じゃろ
いや、わからない人用にあるわけじゃないんだけど。




508 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 23:09:06 ]
>>506
どんなに経験積んだって人間は間違えるから予防が必要なんだよ

509 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 23:14:27 ]
構文が悪い

static_cast<int>(var)と(int)varじゃ
後者を使いたくなるのもわかる

510 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 23:15:31 ]
>>506
よくないよ。
static_cast 継承関係に無い型をキャストしようとエラーになる
Cスタイルキャスト 継承関係に無い型をキャストしてもエラーにならない。



511 名前:デフォルトの名無しさん [2010/03/05(金) 00:31:20 ]
インディアン 嘘つかない

512 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:46:24 ]
Cスタイルのキャストを残したビャーネが悪い

513 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:00:33 ]
残すも何も互換性だから

514 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:04:56 ]
じゃあ完全互換じゃなくしたビャーネはもっと悪い

515 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:07:44 ]
CとC++って完全互換じゃないの?
extern C/C++ とかでなんとかなると思ってたんだけど
だれか反例教えちくり

516 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:13:04 ]
100%の互換となることを目標としたことは一度もない、とプログラミング言語C++に書かれているよ

517 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:26:17 ]
そうなのか,買って呼んでみるよ



518 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:28:12 ]
>>515
www.google.co.jp/search?q=C+C%2B%2B+%E4%BA%92%E6%8F%9B%E6%80%A7
www.google.co.jp/search?q=C+C%2B%2B+compatibility

519 名前:デフォルトの名無しさん [2010/03/05(金) 01:30:15 ]
int class;
この時点から 100% じゃないしな

520 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:31:10 ]
>>515
変数名に new とか関数名に delete とか、余裕で死ねる。

521 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:31:25 ]
C89 でもちょこちょこ違うのに、C99 で決定的になったからな<非互換性。
ああ、すべての言語に複合リテラルがあればいいのに。

522 名前:デフォルトの名無しさん [2010/03/05(金) 01:47:46 ]
>>521
残念ながら C++ は C89 ではなく K&R C から派生した言語なので
C++ が C89 に対して互換性がないのではなく、
C89 が C++ に対して互換性がないんだよ

C++ 側に「捨てた罪」があるのは K&R C に対してだけなのが原則で
extern "C" などの後付け設定がこの原則の例外

523 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:50:13 ]
>>522
> 残念ながら C++ は C89 ではなく K&R C から派生した言語なので
はつみみです

ソースある?

524 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:51:49 ]
D&Eでございます。

525 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:05:31 ]
それ、禿一人で作ってたころのはなしじゃねーの?
少なくとも ISO C++ が参照してる C は ISO C だし。

526 名前:デフォルトの名無しさん [2010/03/05(金) 02:07:38 ]
どのクラスからも呼び出すことの出来る変数はどのように宣言するのでしょうか?
staticやexternがあるみたいですが
いかんせんエラーが出ます。どうか教えてください

527 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:08:00 ]
>>522
C++ の設計が K&R C から始まったとして、どうしてそれが
標準 C++ と標準 C との互換性の主従に関係するの?



528 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:08:44 ]
>>526 ソースとエラーメッセージうp 長いなら >>6

529 名前:デフォルトの名無しさん [2010/03/05(金) 02:15:54 ]
>>528
長いんで省略した形で記述します。
たとえば
==================================
//○×.h
class Cabc : public **
{
省略
public:
//ここでグローバル変数を記述したい
static CString str;
//省略
}
/////////////////////////////////////
○X.cpp
//省略
str = _T("a");
//省略
/////////////////////////////////////

このstrの値を他のクラスで使いたい場合
CString buf;
buf = Cabc::str ;
のようにしてもダメなんでしょうか?
わかりにくくてごめんなさい
なにぶん初心者ですのでよろしくおねがいします


530 名前:デフォルトの名無しさん [2010/03/05(金) 02:17:13 ]
>>527
公式に「主従」なんかないだろう
俺は事の経緯から導かれる道義的な関係を指摘したまで

531 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:22:40 ]
>>515
extern "C"はCとC++の間でグローバルな関数・変数がリンクできるようになるだけ。
構文の解釈が変わるなどといったことは起こらない。

互換でない例としてはvoid*から他のポインタ型の暗黙変換が可能か否かなど。

532 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:31:53 ]
>>530
いや、導かれてないから。 >>522 の1行目が事実だとしても2行目以降は
あんたが勝手に言ってるだけでしょ。道義的関係とか意味わかんないし。
C89 が当時の標準化もされていなかった C++ と互換性がないとか、当たり前だし。

533 名前:デフォルトの名無しさん [2010/03/05(金) 02:36:39 ]
>>532
C89 の目玉が C++ からの逆輸入という事実もあるわな
当時の C++ が標準化がされていようがいまいが C89 はその道を選んだ
どっちが合わせるべき立場にあったかは明確であろう

534 名前:デフォルトの名無しさん [2010/03/05(金) 02:37:24 ]
今日は寝落ち

535 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:45:27 ]
>>533
合わせるべき立場とか、無いから。それ、妄想だから。

その調子で「C++0x は C# に合わせるべき立場にいる」とか
「C++0x は D に合わせるべき立場にいる」言い出すやつが
いたとしたらどう思うよ?

あんたが C++ 大好きなのはわかったが、これはさすがに
言いすぎだろ。

536 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:58:29 ]
先発のものが後発に合わせるわけにはいかないってだけのことだろ
C#がC++0xに対して互換性が無いのと一緒

537 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 03:00:29 ]
long longや可変個引数マクロ、数学関数などC99からC++0xへ持ち込まれるものだってある。
初期化リストをC99の複合リテラルと互換性のある構文にしようという提案が出たことだってあった。
CとC++は,お互いに影響を与えつつ受けつつという関係だと思うなぁ。



538 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 03:04:36 ]
内部クラスではtemplateが使えないのでしょうか?
以下のようなコードとコンパイルエラーが出ます。


gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
test0.cpp: In function ‘void func()’:
test0.cpp:14: error: expected primary-expression before ‘template’
test0.cpp:14: error: expected ‘;’ before ‘template’
test0.cpp:30: error: expected ‘}’ at end of input

12: void func()
13: {
14:  template<class T>
15:  class Hoge{
16:   public:
17:    static void foo( const T& val ){
18:     cout << val << endl;
19:    }
20:  };
21:
22:  Hoge::foo();
23: }


539 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 03:24:35 ]
使えない。

540 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:03:48 ]
>>529
> わかりにくくてごめんなさい
わかりにくいのは、エラーが何なのかをキミが隠しているからだ。
人生相談コーナーに「とある良くないことが起きました。どうすればいいですか?」とだけ書いて
送っても、「まぁ、気を落とさずに」みたいな曖昧なアドバイスしか来ないぞ。

541 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:57:39 ]
>>529
.cppのstrって何者?

542 名前:デフォルトの名無しさん [2010/03/05(金) 07:37:28 ]
>>540
えっと、、そこまで難しいことではないんです
ただ、たとえばどんなクラスからでも使えるCStringの変数が欲しいわけ
でそういうのはどうするのか?という質問なんです。

543 名前:デフォルトの名無しさん [2010/03/05(金) 07:39:41 ]
>>541
ヘッダで宣言したCStringのつもりです。
このstrをどんなクラスからでも参照可能にするにはどうしたらいいのでしょうか?
とても困っています
よろしくお願いします

544 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 07:42:25 ]
ここまで頑としてエラーを書かないのは何でだろうね。
クイズの出題者気取り?

545 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 07:44:23 ]
静的メンバ変数でググれ

546 名前:デフォルトの名無しさん [2010/03/05(金) 07:50:13 ]
>>544
エラーは
LicenselistViewerList.obj : error LNK2001: 外部シンボル
""public: static class ATL::CStringT<char,class StrTraitMFC_DLL<char,class
ATL::ChTraitsCRT<char> > > CLicenselistViewerList::strrr" (?strrr@CLicenselistViewerList@@2V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@A)" は未解決です。

です。
俺はただこの問題が解決してほしいだけなのでクイズとかそんなんではないです
本当に困っています

547 名前:デフォルトの名無しさん [2010/03/05(金) 07:51:54 ]
>>545
ググって解決できないから頼んでます。
静的メンバ変数だとこのやりかたで宣言したstrは
Cabc::strで外の変数を使えるとあります。
使えません
どうしてでしょうか?



548 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 08:03:30 ]
宣言はあってる
定義の仕方が悪い

549 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 08:08:19 ]
>>546
エラーメッセージは開発者がなにをすべきか直ぐ分かるようにするために出力してるんだぜ

class名::str;
を.cppの先頭付近にでも書いとけ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<218KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef