[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 06/02 12:37 / Filesize : 89 KB / Number-of Response : 349
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

【初心者歓迎】C/C++室 Ver.66【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 01:08:48 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.65【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1239326399/

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か に置換しておくことをお勧めします。

159 名前:156 [2009/06/04(木) 11:46:59 ]
>>157,158

ありがとうございます。
OSはVistaで、ここに書いてある通り環境変数も設定したつもりなのですが
できないんです。。
;c:\borland\bcc55\bin
ですよね?
これだとここで指定したディレクトリじゃないとできないってことでしょうか?
ローカルディスク(C)の中ならどこでもコンパイルできるようにするには、設定を
c:\
にすればいいということでしょうか?

160 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 11:52:18 ]
>>159
コマンドラインで、path と打って出てくる文字列に c:\borland\bcc55\bin はあるか?
ちなみにシステム変数の設定をしたあとで開いたコマンドプロンプトじゃないと
有効じゃないぞ

161 名前:デフォルトの名無しさん [2009/06/04(木) 12:06:53 ]
>>160
コマンドプロンプトでpathを打つとちゃんと出てきます。
それで、確認用ファイルを
c:\Emacs\C\test.c
という風に作ったディレクトリに保存して、Cディレクトリ内で
c:\Emacs\C\>bcc32 test.c
というようにコマンドしても操作可能なプログラムとして…
というメッセージが返ってきます。。。

162 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 12:28:01 ]
bcc32 test.c
これを、
c:\borland\bcc55\bin\bcc32 test.c
と打つとどうなるよ。

163 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 12:29:09 ]
あと環境変数の最後に書いてある?
最初と最後以外は ; で区切ってないと前後とくっつくぞ

164 名前:デフォルトの名無しさん [2009/06/04(木) 13:16:59 ]
WindowsでWinSockのプログラムを書くとき、C++ではなくCを使うのでしょうか?
どうしてもC++で書きたかったら、
struct sockaddr_in
とかそういうのは、上手く自作のクラスにまとめてしまえばいいのでしょうか?


165 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 13:25:45 ]
別にC++でもstruct sockaddr_in とかそういうのは書けるだろ

166 名前:デフォルトの名無しさん [2009/06/04(木) 13:38:12 ]
でもネットワーク関係の例題プログラムを見てると、参照は使わないし、クラスもなし、マクロ使いまくり、
とかそういう感じのプログラムばかりだったので、みんなそんな感じなのかなと。


167 名前:デフォルトの名無しさん [2009/06/04(木) 14:03:34 ]
>>162
そうコマンドすればコンパイルできます。
ただし、"コマンド'ilink32.exe'を実行できない"とエラーが出ます。
やはりbinディレクトリの中でやりくりするしかないのでしょうか?

>>163
そこは大丈夫です。ちゃんと; ;で挟んであります。



168 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 14:07:11 ]
>>167
リンカがパス通ってないからな。
それでコンパイルできるなら、PATHがおかしいんだよ。
どこかタイプミスがあるはず。その部分コピペして貼り付けてみ。
コマンドプロンプトのコピーのしかたはわかるよな?

169 名前:デフォルトの名無しさん [2009/06/04(木) 14:30:41 ]
>>168
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\usr\local\bin;D:\MinGW\bin;c\borland\bcc55\bin;C:\Program Files\QuickTime\QTSystem\
これがパスの設定です。これのことですか?

コマンドプロンプトのコピーの仕方はわかりませんが(笑)、
ちょっと打ってからTabで出してるのでタイプミスはないと思います。。

170 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 14:33:55 ]
>>169
>c\borland\bcc55\bin
コロンが抜けてる
c:\borland\bcc55\bin


171 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 14:37:58 ]
このすれ優しい人が多いね。
感動した!

172 名前:169 [2009/06/04(木) 15:36:42 ]
>>170
おぉ!!できました!
親切にありがとうございます!!
171じゃないですが、本当に優しい人が多くて助かりました!

あと、ついでと言ってはなんですがコマンドプロンプトについて質問です。
コマンドプロンプトを開いたときの最初の位置が
C:\Users\kei
になってます。(keiは僕の名前です)
開いたとき一番最初は C:\ になってると一番都合がいいのですが、そのように設定できますか?
プロパティとかいろんなトコからやろうとしても見当たらないので…。

173 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 15:39:15 ]
\usr\local\bin
何に使うんだろう

174 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 15:39:16 ]
ショートカット作っとけばいいべ。
プログラムはcmdで、作業フォルダはC:|

175 名前:174 mailto:sage [2009/06/04(木) 15:40:16 ]
C:\だった、、、シフト押しっぱなしだった

176 名前:デフォルトの名無しさん [2009/06/04(木) 16:21:59 ]
作業フォルダの設定はどうするんですか?
どう開いても変なディレクトリから入っちゃいます。。
cd ../../
を毎回やるのは億劫なので。。。

177 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 16:37:32 ]
右クリックでプロパティ出せばいいだろう。
cd \ でいいじゃない



178 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 16:40:04 ]
そろそろスレ違いだな

179 名前:デフォルトの名無しさん [2009/06/05(金) 08:08:41 ]
クラスをグローバルにしたいんだけど、
extern AClass a;
でいいの?

180 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 08:22:59 ]
バッチファイル書けば楽にならないか?

cd ..\...\
bcc32 %1

とか。

181 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 09:58:57 ]
ルートで作業するのは論外。

182 名前:デフォルトの名無しさん [2009/06/05(金) 11:16:18 ]
ネットワークのプログラムを書いてると、「Windowsのファイヤーウォールがブロックしました」
みたいなメッセージが最初の動作時に一回だけ出るときがありますが、出ても最初の一回だけで
その後は出ません。これってプロパティのどこかにアンブロックしたという記録が残っている
のでしょうか?


183 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 17:56:01 ]
板違い

184 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 19:23:36 ]
>>182
レジストリのどこかは知らないが、設定の閲覧・変更は
コントロールパネルのWindowsファイアウォールのところを見ればいい。

185 名前:デフォルトの名無しさん [2009/06/05(金) 20:44:54 ]
>>183-184
ありがとうございます。コントロールパネルに見つかりました。
あともう1つだけ。(板違いといわれそうなのですが…一応C++で書いているので)
TCPで複数のコネクションを同時に保持するサーバーを書きたいのですが、サーバ側から
みた通信先はどうやって区別すればよいですか?適当にIDとかを割り振ってそこをみるように
すればいいんでしょうか?
××のソースをみろとかでもいいです。どうかお願いします。


186 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:48:43 ]
>>185
ソケットなら接続してきたクライアントの情報を得られる。
ネットワークプログラミング相談室なんてスレがなかったかな?

187 名前:デフォルトの名無しさん [2009/06/05(金) 21:10:01 ]
>>186
ありがとうございます。
ということは、accept()で得られたクライアント情報のIPアドレス+ポート番号
の組でクライアントを識別するということですか?

>ネットワークプログラミング相談室なんてスレがなかったかな?
次からはそっちで聞いてみます。




188 名前:質問 [2009/06/05(金) 23:03:36 ]
VC++2008です
textBox1に自由に入力させ、「眼鏡」という文字列が入力された瞬間に
メッセージボックスを表示するにはどうしたらいいでしょうか

TextChangedイベントの中でif(textBox1->Text=="眼鏡")としたんですが、
前後に文章があるときもメッセージボックスを表示させたいです

よろしくお願いします

189 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 23:57:40 ]
strstr

190 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 01:25:52 ]
VisualC++2008EEです

引数としてクラスのポインタを受け取り、そのポインタにnewでクラスのインスタンスを作る関数は作れますか?
また、どのように作るのでしょうか?
そうして作ったインスタンスを関数の外でdeleteしたいのです
よろしくお願いします

191 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 01:33:14 ]
>>190
void f(int*& rp)
{
rp = new int;
}

int main()
{
int *p;
f(p);
delete p;
}

192 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 01:45:09 ]
キモイ設計だな

193 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 01:51:18 ]
メリット皆無だし

194 名前:デフォルトの名無しさん [2009/06/06(土) 03:34:30 ]
普通のメンバ変数を初期化するときって、
コンストラクタの後ろに付加、コンストラクタの中で代入、初期化用メンバ関数を用意してコンストラクタの中で呼び出し
……とかいろいろ考えられると思うけど、使い分けってある?

あと、特に理由がない限り、コピーコンストラクタに初期化処理ってしなくても大丈夫よね?

195 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 03:48:26 ]
なるべく初期化リストで全部済ませる
初期化で済む物を代入にするメリットは全くない

196 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 03:50:05 ]
使い分けというか、言語やプログラムの仕様から制約されるってかんじジャね?

const なメンバ変数
 => 初期化リストでしか初期化できない。
初期化のために手続きが必要
 => 初期化リストでは無理
初期化のタイミングがコンストラクション時以外にもある
 => じゃ、別関数にしておくか

197 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 03:51:05 ]
意地でも例外を送出したくない場合。



198 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 04:17:00 ]
const以外でも初期化リスト結構みんな使ってるのかー。

途中でリセットする場合以外でも、お婆ロードでコンストラクタが複数あるときは
別関数の方が楽そう……かな?


199 名前:デフォルトの名無しさん [2009/06/06(土) 04:53:35 ]
Visual C++ eeのWin32APIでやってます。
ユニコードONの状態で

wchar_t type[255] = _T("うんこ");
MessageBox(NULL, (PCTSTR)typeid(type).name(), NULL, MB_OK);

とすると文字化けしてしまうのですが、なんでですか?
文字列リテラルにLをつけないといけないのと関係あります?
うまく表示する方法ってどうやるのですか?

まだ始めたばっかだしマルチバイトでやればいいのでしょうけど
気になるので、よかったら教えてください

お願いします

200 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 06:47:24 ]
>>198
Effective C++は読んだかい?
まだなら定額給付金を片手に今すぐ本屋に行くんだ。

201 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 06:48:32 ]
typeid(type).name()はLPCTSTRじゃないから

MessageBoxA(NULL, typeid(type).name(), NULL, MB_OK)

202 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 06:57:13 ]
>200
おや なぜか めのまえの ほんだなに おいてあるぞ!

203 名前:199 [2009/06/06(土) 15:31:21 ]
>>201
MessageBoxAとMessageBoxWがあって
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE
こんなんなってるんですね

だからMessageBoxAを強制的に呼び出してやると
氷解しました。ありがとうございます。

204 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 17:26:42 ]
>>199
TCHAR type[255] = _T("ちんこ");
MessageBox(NULL, type, NULL, MB_OK);

205 名前:デフォルトの名無しさん [2009/06/07(日) 13:03:16 ]
dummy

206 名前:デフォルトの名無しさん [2009/06/07(日) 14:01:55 ]
int org_i = 1000;
void *p = &org_i;
int i = *reinterpret_cast<int*>(p);
voidへのポインタからINTの値を取り出そうとして上のようにしたのですが、
reinterpret_castの前に*があったりしてなんとなくいやです。
ほかに方法はないでしょうか?


207 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:04:28 ]
それが正しい方法だからそれでいい



208 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:05:17 ]
voidのポインタをやめる

209 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:50:41 ]
こんなテンプレートを用意して

template <class T>
T pointer_value(const void* p)
{
return *static_cast<const T*>(p);
}

こうする

int i = pointer_value<int>(p);

210 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:56:13 ]
テンプレートは分からないので禁止

211 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 17:15:04 ]
>>210
お前が勉強しろ

212 名前:デフォルトの名無しさん [2009/06/07(日) 18:35:31 ]
テンプレートはわからないので禁止

213 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 18:46:18 ]
ポインタはわからないので禁止

214 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 18:56:05 ]
C++はわからないので禁止

215 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 19:20:16 ]
クラスAがクラスBに所持されてる関係になってるとして

インスタンスAがB1に参照されてる状態から
B2がインスタンスAを参照したらB1からAの参照が切れる

常にAが1個のBから参照されるような関係を作るにはどうしたら良いでしょうか?

216 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 19:37:11 ]
所有を譲渡するメソッドをBに作る

217 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 20:04:47 ]
逆にAがBを参照するように変更できないか検討する



218 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 23:29:49 ]
>>216
B同士で所有の移動をするメソッドを、ということでしょうか?

>>217
BがAに更新通知してAがBの値を読みに行くので
Aへの更新通知を別の方法で実現できればそれでもいいのですが・・


219 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 00:37:33 ]
Aを触れないし値も引き出せない状態になったB1・B2の挙動をどうするつもりかに因るな

220 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 00:38:58 ]
AからBにコールバックでも登録させればいいんでない。

221 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 00:41:57 ]
AがB1に参照されたり、B2に参照されたりってのを決めるのはだれだ?

222 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 01:43:02 ]
> BがAに更新通知してAがBの値を読みに行くので

Aに"今からお前の相手するBインスタンスはわしじゃ"通知メソッドを作れば?
その際に元彼Bに"もう私のことは放っておいて"通知メソッドをAから呼んでもらう

223 名前:デフォルトの名無しさん [2009/06/08(月) 11:43:40 ]
C++では、戻り値だけが違う関数は同じものとされますが、
戻り値だけが違う関数を複数作りたい場合どうするべきでしょうか?
class C1;
class C2;
というのがあって、
C1 create();
C2 create();
という感じにやりたいときです。
お願いします。



224 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:11:13 ]
>>223
無理です。だいたい呼び出せません。
名前空間を使いましょう。

225 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:17:56 ]
ファイルの開け方、閉じ方はわかったのですが読み取って処理するところがよくわかりません
,で区切られて1行に並んでるファイル内の行列から数値を配列に入れる方法を教えてください!

226 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:23:49 ]
やりかたはいろいろありすぎて、、、
とりあえず手始めに、fgets()とsscanf()使ってみるのはどうか?
まあ配列に入れるならループで回してstrtokとatoi使う手もあるけど、
最後はstrtok+atoiみたいな関数を自分で作るのがいいかもね。

227 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:24:30 ]
今回初めてマルチスレッドな処理を行う必要があるのですが
注意点、スレッドセーフな処理にするための方法などを詳しく扱った書籍やサイトはないでしょうか?



228 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:25:39 ]
>>226
ありがとうございます
,の除き方を詳しく教えてください

229 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:26:37 ]
>>228
csvデータの読み込みでぐぐった方がいいかも

230 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:27:37 ]
>>228
sscanf()もstrtok()も , の処理はやってくれるだろ。
自前でやるならstrchr()で場所調べて切り出していけばいいと思うよ。

231 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:32:12 ]
そうなんですが
全然知りませんでした
ありがとうございました

232 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:05:22 ]
>>223
dmyC{};
class C1{C1 operator=(dmyC&){*this=createC1();return *this;}};
class C2{C2 operator=(dmyC&){*this=createC2();return *this;}};
dmyC create(){return dmyC();}
C1 C1create(){〜return c1;}
C2 C2create(){〜return c2;}

なんのメリットがあるか知らんが使用側で偽多態受けなら出来ん事はない
前参照やスコープは適当に修正要

233 名前:デフォルトの名無しさん [2009/06/08(月) 14:14:40 ]
C99より前の規格では、nanやinfを検出することってできないのでしょうか?

234 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:19:51 ]
修正 dmyC で弄った方が潰しが利くね
dmyC{operator C1(){〜return c1;}operator C2(){〜return c2;}};

235 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:50:49 ]
floatで数字をいろいろ処理して,でつないでcharに直してfputsで書き出したいんですけど方法を教えてください!

236 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 15:39:06 ]
fscantfとかsscanfとかそういうことか
わかったぽ

237 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:01:54 ]
.netはC++では扱えないんですか



238 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:06:26 ]
はい

239 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:10:15 ]
C#でしかやれないということですか?
GUIアプリを楽につくりたいならC#ですかね?

240 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:11:14 ]
その通り!

241 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:18:42 ]
テンプレートの話は禁止だって言ってんだろ

242 名前:デフォルトの名無しさん [2009/06/09(火) 01:07:44 ]
int array[x][y];
があるとき、
array[10] == &array[10][0]
でしょうか?


243 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:14:00 ]
よく考えたら分かると思うが頭痛が悪くなるようなコードは書くな

244 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:14:19 ]
配列は分からないので禁止

245 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:17:52 ]
>>242
気になるならポインタがさしてるアドレスを比べてみなよ

246 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:20:47 ]
>>245
型は配列なので注意が必要、多分等しいだとは思うんだが。(両方とも配列)
配列はポインタに自動変換だが、逆はそうではない、やっぱ頭痛い。

247 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:23:22 ]
ああ違う、右はポインタ、左は配列、そして左が自動変換だ
うぜぇぇ



248 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:24:56 ]
int a[10]; は、int10個の配列aで分かりやすいのに。
int a[10][20]; は、int10この配列が20個、ではないところがややこしい。


249 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:26:48 ]
>>248
Cの規則ですから
int func()[10]
{
return 配列;
}
おらよ、これでも喰らえってなもんだ

250 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:26:53 ]
ポインタ本を読むと出てくる(K&Rでもかかれてる)けど
配列や関数の型は、外側からはがしていく感じで解釈するんだよね。

251 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:49:26 ]
>>249
関数は配列を返せない

252 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:53:52 ]
>>251
ANSIでは使えない事になっているが、返せる処理系もっあってだな、
アホな開発者がそれを返している糞ライブラリがあるんだ
どこのかって?S○Eとか○CEとかSC○とか、まあそんなところ、死ねます。

253 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:56:17 ]
>>251
ポインターは返せるからできなくはないんじゃね?
ただサイズの問題とかあるけど

254 名前:デフォルトの名無しさん [2009/06/09(火) 02:27:31 ]
CのコードをC++に書き直してます。
Cのコードの中に大量の構造体を使ってるところがあって、malloc()でメモリを
取らずに、自分でメモリプールを管理する割り当て関数を使ってます。これを生かすため
placement_new()というのを使おうと思っているのですが、この場合delete()が使えない
(使う必要がない)と聞いたのですが、placement_new()の使い心地はどうでしょうか?
使いやすいですか?



255 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:16:28 ]
構造体に配列突っ込めば、ポインタじゃなくても直接返せるよ! よ!

256 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:24:55 ]
>>254
使う必要がない、ではなく使えないだな。
www.fides.dti.ne.jp/~oka-t/cpplab-placement-new-2.html
placement newの文字通り引数を取る形式new(hoge) Tにたいして、delete(hoge) pという構文がないという話。

メモリ確保処理を自前でやるとしたら、
クラス・構造体にnew/deleteなどを定義するか、
アロケータクラスを作って、確保解放はvectorとかに任せる
という形態のほうが多いと思う。ほかの人はどう考えているか分からないけど。

257 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 04:13:45 ]
placement newを使いにくいとは思わないけど、むやみに使うものでもない。
>>256の言うように、クラス・構造体にnew/deleteを定義するとか
アロケータとコンテナを組み合わせるのがいいと思う。



258 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 05:16:07 ]
c++で複数のクラスからの継承ってできますか?

たとえば
数値Aと
class NoA{
//ここに関数A
}

class NoB{
//ここに関数B
}

ここでNoAもNoBも引き継いだclass NoC
(NoC.関数AとNoC.関数Bの両方ができ)

みたいなことってできるの?

259 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 05:18:52 ]
>>258
www.geocities.jp/ky_webid/cpp/language/033.html






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

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

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