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


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

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



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

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

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

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

276 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:38:24 ]
ageて言うほど悔しかったかワロスwwwwwwwww

277 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:39:14 ]
来るものは拒まず、馬鹿は去れ

278 名前:275 mailto:sage [2008/08/17(日) 17:39:44 ]
>>276
sageチェック外す癖が付いてたんだよ悪かったな

279 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:41:09 ]
馬鹿に限って煽りをスルーできないんだよな( ´ー`)y−~~

280 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:41:54 ]
( ゚Д゚ )y−~~

281 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:57:51 ]
>>272-280
なんという夏休み。

>>264
今日び配列newなんてやめておいた方が良い。
std::vectorか、boost::arrayあたりを。
それにC++的には関数ポインタより関数オブジェクトを。

282 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:05:15 ]
typedefがよくわかりません
教えてください
釣りではありません
本当です

283 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:06:12 ]
どう分からないんだ

284 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:07:51 ]
>>281
嫌だね。
人にプログラミング上の事まで強制される謂われはないし



285 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:09:09 ]
int a; //aという変数の宣言
typedef int a; //変数宣言の形にtypedef修飾子をつけるとaという型の宣言になる

286 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:12:11 ]
typedefのあとに変数宣言の形とか考えたこともなかった
そんな分かりにくい説明なんか読むんじゃありません

typedef 元の型 新しく宣言する型;

これで分からなかったらもうどうしようもない

287 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:22:05 ]
ちなみにtypedef修飾子は他の修飾子がそうである様に
元の型 typedef 新しく宣言する型;
という元の型の後の修飾でも有効

288 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:56:26 ]
typedefがわからんて…

289 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:44:19 ]
質問です。C++のクラスのメンバに、自身のクラスのメンバ関数ポインタ、
あるいは他のクラスのメンバ関数ポインタを保持させ、
呼び出すことは可能でしょうか?また、それはどのような方法でしょうか?

次レスに、実験したソースを付けます(インデントは全角スペース)。
プログラムの意図は、

・自身のメンバ関数ポインタによる自身のメンバ関数の呼び出し
・同じ変数による、他のクラスのメンバ関数ポインタによる他のクラスのメンバ関数の呼び出し

の二つです。
多少、形が変わっても構いません。
ご存知の方、よろしくお願いします。

290 名前:289 mailto:sage [2008/08/17(日) 20:45:42 ]
#include<stdio.h>
class object1{
public:
  void (object1::*PFunc)(void);
  void Func1(void);
};
class object2:public object1{
public:
  void Func2(void);
};
void object1::Func1(void)
{
  printf("1\n");
}
void object2::Func2(void)
{
  printf("2\n");
}
int main(void)
{
  object1 *Obj=new object1;

  Obj->PFunc = &object1::Func1;
  (Obj->*PFunc)();//error C2065: 'PFunc' : 定義されていない識別子です。

  Obj->PFunc = (void (__thiscall object1::* )(void))&object2::Func2;
  (Obj->*PFunc)();

  return 0;
}

291 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:17:24 ]
>>290
何がしたいのかいまいちわかんないけど、(Obj->*Obj->PFunc)();じゃね?

292 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:30:40 ]
->*が出てくるときはまず設計ミス

293 名前:289 mailto:sage [2008/08/17(日) 22:40:10 ]
>>291
動きました。ありがとうございます。
-> と ->* は全く違うんですね…。

>何がしたいのか
まず、あらかじめ別の型で動的確保した領域で、線形リストをクラスで組んでメンバ関数を使おうとしました。
しかし、その場合、仮想関数はなぜか使えませんでした。
仮想関数を呼び出すとコンパイラはエラーを出さないんですが、実行時に停止するんです。
そこで、関数ポインタを入れ替えることにし、このような形になりました。
かなり横着している気はしますが…。


294 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:47:11 ]
__thiscallとか移植性ないんだからやめろよ



295 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:48:29 ]
boost::ptr_funでも使ってポリモーフィズムすりゃいいんじゃね?

296 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:49:16 ]
boost::ptr_vectorだったorz

297 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:43:56 ]
#include <iostream>
void (**(**func)())();
void func3();
void func4();

int main()
{
void (**(func1()))();
void (**func2)();

func = new (void (**(*[1])())());
func[0] = func1;
func2 = func[0]();
func2[0]();
func2[1]();}
void (**(func1()))(){
void (**func)() = new (void (*[2])());
func[0] = func3;
func[1] = func4;
return func;
}
void func3(){
std::cout << "func3() " << std::endl;
}
void func4(){
std::cout << "func4() " << std::endl;
}

298 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:58:41 ]
>>297
これ何?

299 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:01:21 ]
自分で考えろカス

300 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:06:06 ]
いやそういう意味ではなくて、何の質問もないのに関数への
ポインタとか関数へのポインタを返す関数へのポインタとかの
ソースをいきなり貼られてるのは何の意味があるのかと思って。

301 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:19:30 ]
それなら「ない」

302 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:20:20 ]
>>297
なんか言えよ

303 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:22:36 ]
void (**(func1()))();

こんな関数のプロトタイプ宣言初めてみたぞ。
まあ書けばいくらでも複雑に書けるんだろうけど、
デザパタの生成パターンでもこんな書き方はしないし。

304 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:56:09 ]
何故括弧を一つ増やしたし



305 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:30:48 ]
c/c++で開発経験者にお聞きしたいのですが、
コボルみたいにコードインスペクションは現場でやりますか
また、ソースを読み上げたりハードコピーにマーカーでチェック、机上チェックなんかも
やったりしますか?

306 名前:デフォルトの名無しさん [2008/08/19(火) 07:33:51 ]
BSD socketでsendしてerrno:9が帰る場合考えられる原因ってなんなんでしょうか。
char *c;
strcpy(c,str);
printf("Sending:%s¥n",c);
int checker=send(socketID, c, strlen(c), 0);
if(checker == -1){
NSLog([NSString stringWithFormat:@"Send Error:%d",errno]);
return 2;
}
return 0;

307 名前:306 [2008/08/19(火) 07:37:57 ]
Obj-CのNSLog();使ってエラー表示させてるけどそこは気にしない方向でお願いします。
NSLog([NSString stringWithFormat:@"Send Error:%d",errno]);

printf("Send Error:%d¥n",errno);
とほぼ同じです。

308 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:44:27 ]
>>306
#define EBADF 9 /* Bad file number */
ならsocketIDが無効
socket( )の戻り値は確認してる?


309 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:54:04 ]
>>306
数値の意味がわからないなら文字列にすれば
NSLog([NSString stringWithFormat:@"Send Error:%s", strerror(errno)]);


310 名前:306 [2008/08/19(火) 08:15:49 ]
>>308
ありがとうございます。
socket()の戻り値は確認していて、connect()及びrecv()は問題なく行えています。
socketIDがガベージコレクションで解放されちゃったのかもしれないのでその辺りで探ってみます。

>>309
文字列にできたんですか。ありがとうございます。

311 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:07:33 ]
関係ないけど7bit asciiのみなら
NSLog(@"format",...);
って書けた気がする。

312 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:22:50 ]
>>305
プロジェクトの性質によって色々だとは思うが、
絶対ないと断言できるのは「読み上げ」だな。
やれるもんならやってみろ。

313 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:39:10 ]
>>305
>ソースを読み上げたりハードコピーにマーカーでチェック、机上チェック
そんなアナクロなこと、COBOLでだってやりませんよ。

314 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:53:35 ]
>>305
俺は「コードレビュー」はやったことはある
紙の無駄だけどプリントアウトしたソース使って

ただ、(若手の)教育と(協力会社さんなどの)スキル把握(もちろん
悪いところは直してもらう)が主な目的だったんで、約束事として
つねにやってたわけじゃない








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

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

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