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


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

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



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

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

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

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


172 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:04:01 ]
コンソールアプリケーションで実用的なプログラムってありますか?
C++で学んだことを生かす練習のためにもなにか作りたいのですが・・

173 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:10:57 ]
>>172
コンパイラ&リンカ

174 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:41:03 ]
>>173
ありがとうございます
自分の力じゃ無理そうなのでアルゴリズムから作っていこうと思います

175 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 10:15:53 ]
圧縮アルゴリズムおもろいよ

176 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 15:37:21 ]
構造体A(メンバchar a , int b)をsizeofした値を求めろって問題は
5と8どちらを答えるべきなんですかね。
パディングも含めた値が実際の答えなのでしょうか?

177 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 15:43:08 ]
intのサイズすら環境依存でFA

178 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 16:17:40 ]
>>176
答えはsizeof( A )だろ


179 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:12:55 ]
>>178
お前まぢ頭いいな

180 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:43:18 ]
('A`)に見えた




181 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:44:54 ]
sizeof に目がなくて

182 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:08:55 ]
sizeof('A`)だと8なのでやはり8が答えみたいですね
ありがとうございました。

183 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:27:13 ]
>>182
俺の環境では5になるんだが

184 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:19:58 ]
>>182 環境依存
#include<stdio.h>

#define MACRO(type) printf("sizeof(%s)=%d\n", #type, sizeof(type))

#pragma pack(push, 1)
struct pack1{
char a;
int b;
};
#pragma pack(pop)

#pragma pack(push, 2)
struct pack2{
char a;
int b;
};
#pragma pack(pop)

#pragma pack(push, 4)
struct pack4{
char a;
int b;
};
#pragma pack(pop)

int main(void){
MACRO(struct pack1);
MACRO(struct pack2);
MACRO(struct pack4);
return 0;
}

185 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 01:13:18 ]
なんと…
処理系依存なのでどれも正解ということですか!
コードまでご丁寧にありがとうございました。


186 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:51:49 ]
処理系というか、自分で決められるといった方が正しい

187 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 11:38:22 ]
#include <stdio.h>
#include <string.h>

struct address{
char name[20];
char jusyo[21];
int age;
};

int main(void)
{
struct address abc;

int s = 1;
if(s = 1){
char name[30];
char jusyo[70];
int age;

printf("名前? "); scanf("%s", &name);
printf("住所? "); scanf("%s", &jusyo);
printf("年齢? "); scanf("%d", &age);

abc.age = age;
strcpy(abc.name, jusyo);
}
return(0);
}
C言語を学習しています。
上プログラムでキーボードから日本語を入力し出力させたいのですが、どうすればいいのでしょうか?
Cygwinを使っています。


188 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 11:47:00 ]
printf使えば良い

189 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 11:47:45 ]
>>187
やったことないけど
pinoki.la.coocan.jp/wiki/?Cygwin%2FInstall%2F%C6%FC%CB%DC%B8%EC%B2%BD


190 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 12:08:46 ]
>>187
cygwin自体が日本語の入出力をできない状態なら>189へ。
gccのコンパイルオプションについて知りたいならcygwinスレへ。
まぁ、動くかどうかは兎も角scanf()の使い方も間違っているわけだが。
使わないに越したことはないが、scanf("%29s", name)とするのが無難。



191 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 12:11:18 ]
構造体のメンバとローカル変数の配列サイズが違うじゃん。それは拙いっしょ。

192 名前:デフォルトの名無しさん [2009/02/25(水) 15:13:30 ]
1>LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
1>libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
1>C:\Documents and Settings\\デスクトップ\Game\ActionGame\/GameAppli\ActionGame.exe : fatal error LNK1120: 外部参照 2 が未解決です。

#include <fstream>

をインクルードすると上記のエラーが出ます

どうすればいいのですか;;

193 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 15:24:46 ]
プロジェクトのプロパティ→C/C++→コード生成→ランタイムライブラリ
を、どれか正しいものに変更する

なんか他の外部ライブラリ使ってるだろ?

194 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 15:26:17 ]
デバッグ版とリリース版のオブジェクトが混在しているように見える
いったんすべてのオブジェクトを削除してビルドしなおせばいい

ほかから持ってきたライブラリ結合してるならリンクオプションをそれにあわせる

195 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 06:44:15 ]
staticメンバ関数を利用するメリットってあるんでしょうか?

196 名前:195 mailto:sage [2009/02/26(木) 06:51:07 ]
すいません
スレ移動します

197 名前:195 ◆Ci3UmwhFqY mailto:sage [2009/02/26(木) 07:18:27 ]
>>196 は他人です

198 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 10:37:07 ]
何でメリットがないと思ったのか、それが知りたい。

199 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:19:36 ]
つnew, singleton

200 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:23:18 ]
コールバック関数のポインタを取るCスタイルのAPIへなんとかしてクラスを配送したいときに



201 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:01:54 ]
質問です。

class Foo { void Bar(void* ptr); };
void Foo::Bar(void* const ptr) {}

VisualC++2008 にてこの様なクラスを作ったところ、コンパイルエラーも警告も出ずにコンパイルが通りました。
疑問に思ったのは Foo::Bar の引数を、void* から void* const に変えてもエラーが出ない事です。

これは文法的に正しいんでしょうか?それともVC++の独自拡張だったりするんでしょうか。

202 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:10:38 ]
文法的にOK

203 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:21:40 ]
>>201

class Foo { void Bar(int ptr); };
void Foo::Bar(int const ptr) {}

が問題ないのと同じこと。

204 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:51:20 ]
>>202-203
仮引数にconstをつけるのは実装と宣言で違っても文法的に問題無いのですね。
勉強になりました、ありがとうございました。

205 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 05:09:10 ]
とても基本的なことなのですが、
符号なし整数の変数で与えられた数 N - 1 から 0 まで順番に処理をするループは、どう書くのが一般的ですか。
for (size_t i = N - 1; i >= 0; --i) だとダメですよね。

自分が考えた書き方は、
const size_t N = ...;
for (size_t i = N; i > 0; --i) hoge(i - 1);
for (size_t i = 0; i < N; ++i) hoge(N - i - 1);
for (size_t i = N - 1; i != ~0; --i) hoge(i);
ですが、どれも使われるのでしょうか。

206 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 05:13:20 ]
size_t i = N;
do { --i; hoge(i); } while (i > 0);


207 名前:206 mailto:sage [2009/02/28(土) 05:14:35 ]
ああ、書いてから気づいたけど >>206 は N が初めから 0 だったらダメだね

208 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 05:36:00 ]
T i = M; //M = N - 1ということで
do {
hoge(i);
} while (i-- != 0);
これだと、MがT型の最大値でも対応できるはず。

209 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 06:46:33 ]
>>205
普通に for (size_t i = N - 1; i >= 0; --i) を使ってるけど
size_tを使う理由が分からない

210 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:29:35 ]
>>209
メモリのサイズを意味するときはsize_tを使うようにしてる
64ビット環境だとunsigned long longになるのかな



211 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:52:40 ]
>>209
> i >= 0;

↑は符合無しだと常に真だろ。

212 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:53:48 ]
何か問題でも?

213 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:54:56 ]
for (i = 0; i > N; ++i) {;} // ループ中に前後の値が影響しない場合。
if (N > 0) for (i = N - 1; i >= 0; --i) {;} // ループ中に前後の値が関わってくる場合。
while 系をカウントループに使うのは愚策と考える。

214 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:02:05 ]
>>212
やめられない、とまらない

215 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:33:44 ]
while(N-->0)は普通に使うだろ
--が矢印に見えるから「Nを0にするまで」って視覚的にわかりやすいじゃん

216 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:39:17 ]
その考えはなかった

217 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:43:37 ]
>>215
そんな餌にクマー
まあでも>>205の要求にあってるしシンプルでわかりやすいな

218 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:16:49 ]
>>215
ああ、意外と面白い使い方かも・・・

視覚的にわかり易く書かない場合は
>0は書かなくても大丈夫か

219 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:09:16 ]
有名だろ、それ

220 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:16:21 ]
ぶっちゃけ初めて見た



221 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:20:36 ]
ソース自体は見た事があるような気もするけど、考え方は初めて見た。

222 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 16:14:42 ]
減少していくのに減少していく方向が空いてるのはなんとなく怖いなぁ

223 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:18:11 ]
>>215
while(N-->0) って見た目が素敵だな


224 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:23:55 ]
AAのプログラム言語とかなら、見た目で分かりやすいかもな・・・

225 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:39:46 ]
befungeのことですね!!

226 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:41:03 ]
面白そうだけど絶対コーディングしにくいな
ほぼ記号だろw

227 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:31:33 ]
さすがショートコーディングスレ。
ためにな・・・って、あれ?


228 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:45:19 ]
繰り返し処理のことを何ていいますか?
専門的にお願いします。

229 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:49:47 ]
反復処理とか繰り返し処理とか

230 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:00:35 ]
繰り返し処理のことを何ていいますか?
専門的にお願いします。



231 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:01:14 ]
反復処理とか繰り返し処理とか

232 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:38:29 ]
>>210
メモリのサイズを入れる型ってsize_t以外になんかなかった?

233 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:50:58 ]
繰り返し処理のことを何ていいますか?
専門的にお願いします。

234 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:55:57 ]
ループ処理じゃね?w
反復も繰り返しだろうけど、お前は違い分からないだろう

235 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:26:00 ]
ぶっちゃけC/C++の話じゃないからスレ違い

236 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:29:11 ]
>>234>>231>>229
もうちょっとかっこいい言い方あるだろ
それを教えろ

237 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:31:09 ]
>>236
死ねハゲ

238 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:31:47 ]
反復処理とか繰り返し処理とか

239 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:47:20 ]
リピート

240 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:14:30 ]
>>228-231
見事な繰り返し処理
>>232は空気嫁



241 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:19:39 ]
>>232
ssize_tとか、でもCでもC++でも標準ではないけど。

242 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:24:27 ]
>>232
ptrdiff_tのこと?ポインタ同士の引き算の型だからちょっと違うが

243 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:34:14 ]
>>241 >>242
そうだな。size_tでよかった。


244 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 05:50:11 ]
まだ初心者なのですが、batファイルをC++builder6で
ボタンを押したら実行するようにしたいので

ShellExecute(Handle,"open",ファイル名.c_str,NULL,NULL,SW_SHOW);

と書いたのですが、うまくいきません・・・どなたか教えてくださいOTL

245 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 06:13:52 ]
>>244
何故、どう巧くいかないのか書かないのですか?

246 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 06:28:56 ]
実行はされるのですが(コマンドプロントが一瞬表示される)
バッチファイルの中身自体が実行されません;;

247 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 06:39:59 ]
batの最後に

pause

入れとけ


248 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 07:00:46 ]
>>247
ありがとうございます。

やってみたところ指定されたパスがありませんとのことでした。
普通にbatファイルを起動すると何も問題がないのですが・・・
原因などわからないでしょうか?

249 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 07:08:14 ]
ファイルパスをちゃんと指定すればいいじゃん・・・

250 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 07:12:19 ]
できました!
こんな時間に、質問に答えてくださりありがとうございました
大変助かりました。



251 名前:デフォルトの名無しさん [2009/03/03(火) 18:34:32 ]
以下のような感じで「*」の前後にスペースが
入っている場合もポインタの宣言なんでしょうか?

static unsigned int * ADDR;

スペースが、後だけのもは参考書にも紹介されていますが
前後両方ともスペースのものは見つかりませんでした。

よろしくお願いいたします。

252 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 19:01:49 ]
vector<string> * const (&u)[buf]; // こんな感じですか?

253 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 19:06:04 ]
>>251
おんなじ。空白類がいくらあろうと関係ない。

254 名前:デフォルトの名無しさん [2009/03/03(火) 19:47:28 ]
>>252
static unsigned int * ADDR;

全くこのままのコードです。

>>253
ご回答有難う御座いました。
もやもやしていましたが、これですっきりしました。

255 名前:デフォルトの名無しさん [2009/03/04(水) 03:11:45 ]
VC++9の質問です。Unicode環境で
Void Func(LPCSTR pMsg);
みたいな関数があって、ここに文字列を渡すのですが、
Func("xxx");
というように普通に書くと問題ないのですが、
Func(_T("xxx"));
とやると、
const wchar_t[3] から LPCSTRに変換できません、みたいなエラーが出ます。
全ての文字列を_T("") で括ればいいのかと思ってたのですが、違うのでしょうか?


256 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 03:14:42 ]
>>255
_Tで括るのはLPC"T"STRのとき。
LPCSTRはconst char*のtypedefだから_Tは要らない。

257 名前:デフォルトの名無しさん [2009/03/04(水) 03:25:58 ]
>>256
なるほど、ありがとうございました。

258 名前:デフォルトの名無しさん [2009/03/04(水) 13:36:24 ]
初歩的過ぎてすいませんが...

すでに宣言してある配列の配列数を求めて
それと同じ配列数の配列を宣言するには
どうすればいいですか?

よろしくお願いします。

259 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:39:38 ]
>>258
配列数はプログラム書いた人しか知らないから無理
それができたら配列のオーバーフロー管理も楽なんだけど


260 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:44:40 ]
>>258
状況がよくわからん



261 名前:259 mailto:sage [2009/03/04(水) 13:44:42 ]
sizeof(配列) / sizeof(型)
でいいか
マクロで定義して同じマクロ使うとか


262 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:49:06 ]
char a[]={10, 10, 10};
char b[sizeof(a)];
int c[(sizeof(a)-1+sizeof(int))/sizeof(int)]

263 名前:258 mailto:sage [2009/03/04(水) 13:53:28 ]
すいません言葉が足りなすぎました。。

int a[]= {1,2,...};

size=sizeof(a)/sizeof(a[0]);

int b[size];

として同じ配列数の新しい配列を宣言しようとしてもできません。

264 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:56:39 ]
C++ なら const int size
Cなら int b[sizeof(a)]

265 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:57:14 ]
>>263
size の型は何か

言語をいえ言語を
C か C++どっちだ
あとCならC89かC99なのか

266 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:57:33 ]
>>263
コンパイラも

267 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:03:12 ]
>>265
C++です。
size の型はintです
>>266
gccです。

268 名前:258 mailto:sage [2009/03/04(水) 14:08:43 ]
const int size = sizeof(a)/sizeof(a[0]);

int b[size];

として宣言できました。

ありがとうございました。

269 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 15:03:27 ]
配列の要素に変数が使える規格って無かったっけ


270 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 15:30:51 ]
>>269
C99だろ



271 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:19:24 ]
連立方程式のを渡したら戻ってくる関数ってありますか?

272 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:20:51 ]
>>271
標準にはない
標準じゃなくていいならある

273 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 09:53:35 ]
assert()と_ASSERT()ってなにか違いがあるのでしょうか?

274 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:11:11 ]
assertはC/C++標準
結果としてabort()
_ASSERTはVC++独自
_CrtSetReportMode等で動作の調整が可能

275 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:14:15 ]
メンバ関数のポインタの宣言はCxxx::*funcなのに
取得はCxxx::&funcでなく&Cxxx::funcなの?
&がなんで宣言の時の*の位置より移動するの?

276 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:40:47 ]
>>275
発想としては、Cxxx::という修飾が
メンバへのポインタ型では*にかかっていて、
メンバへのポインタを得るときには、メンバ名funcにかかっている
ということのようだ。

277 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:51:32 ]
俺としては逆なんだが
なんでCxxx::&funcなの?
どこのクラスのメンバ関数のアドレスか分からんが

278 名前:デフォルトの名無しさん [2009/03/05(木) 20:41:28 ]
大変だー
さっぱりわからん

279 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 20:43:44 ]
>>278
何が分からないんだかさっぱり分からないぞ

280 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 20:44:43 ]
>>275
単に文法的な曖昧さを除いた結果そうなっただけ。

class A {
public:
 static void (*A::func)();
};

としてしまうと、static メンバ変数の実体定義がこうなってしまう。

void (*A::A::func)();

どっちがどっちの A:: やら分からん。



281 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:16:46 ]
もうクラスのメンバ関数のポインタは無しで

282 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:09:09 ]
9割くらいBoostやTR1のbind(暗黙のmem_fun)と一緒にしか使わない。

283 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:41:19 ]
delegate パターンで使うね

284 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:31:13 ]
じゃあdeleteパターンで

285 名前:276 mailto:sage [2009/03/06(金) 19:49:52 ]
>>276, >>280
すみません、レス読んでも、それが
取得はCxxx::&funcでなく&Cxxx::funcなの?
の回答になるのか、さっぱり理解できないですが><

あと、&Cxxx::funcは&(Cxxx::func)としては良くないと本に書いてあるんですが
なんで良くないんですか?

286 名前:デフォルトの名無しさん [2009/03/06(金) 20:12:15 ]
なんか抽象クラスをインスタンス化できないらしいのですがどうすればいいですか?
派生クラスは無いのですが
その派生クラスの無い抽象クラスが型な引数をとる関数を使いたいのですが初期化?の方法がわかりません

287 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:16:31 ]
>>286
まずは、その抽象クラスへのポインタ型か参照型を引数にしている?

288 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:24:22 ]
>>287
ポインタ型を宣言してます、いろいろ上手くいかなかったのでポインタで宣言、元の抽象型で宣言、アドレスをポインタ型に代入→引数に
としてます、エラーメッセージはメンバが抽象型です、宣言を確認してください、です

289 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:27:48 ]
>>286
派生クラスがない、ではなく、派生クラスは自分で作れということでは?

290 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:29:59 ]
ああ、そうかもしれない



291 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:43:25 ]
"派生クラスの無い抽象クラスが型な引数をとる関数"
これ、抽象クラスのインターフェイスを使って新しいクラスを作れということ

292 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:56:18 ]
覚えておきます、ありがとうございました






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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