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


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

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



1 名前:デフォルトの名無しさん [2007/11/03(土) 00:20:13 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.43【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1190860744/l50
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm


52 名前:203 mailto:sage [2007/11/03(土) 22:50:06 ]
>>22
なるほど、これでよさげな感じですね。
どうもでした。

53 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:59:14 ]
C++でLinuxのTCP/IPネットワークプログラミングをする場合
自分でソケット関連のシステムコールをクラス化して
作るものですか?それとも既存のライブラリがあって、それを
利用するのが今の定石でしょうか?
Cでソケットプログラミングはしてるのですが、C++で
同じことをする場合、自作のクラスの作り方の雛形
というか定石がわかりません。大体、形は決まってると
予想しているのですが。

54 名前:デフォルトの名無しさん [2007/11/03(土) 23:02:31 ]
CでうごくならC++でうごく

55 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:03:38 ]
ソケット用のstreamを作っちゃってる猛者もいたなぁ

56 名前:デフォルトの名無しさん mailto:ああわざとか [2007/11/03(土) 23:05:51 ]
>>54
それは現段階では誤解を招くぞ

57 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:09:20 ]
関数の呼び出しを使って、整数xの2倍した値を返す関数を作りたいのですが下のソースでは、値が表示されません。
下記のソースでできるなら、どこが間違っているか、分かる方は教えてください。
この方法自体が間違っているのでしょうか。
#include <stdio.h>
int dec(int y){
int z; z=y+1;
return(z);
}
int inc(int y){
int z; z=y+1;
return(z);
}
int mult2(int y){
int i,j; i=y,j=y;
while(i>=0){
i=dec(i),j=inc(j);
}
return(j);
}
main(){
int i; i=6;
printf("%d\n",mult2(i));
}

58 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:10:20 ]
>>51
リンカ-入力-追加の依存ファイル にgdiplus.libを追加。
ソースに #pragma comment(lib, "gdiplus") って書いておく方が楽だけど。

59 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:12:34 ]
>>57
値が表示されないという事は、
そもそもprintfが機能していないという意味なのだが。
そういう話なのか?

60 名前:デフォルトの名無しさん [2007/11/03(土) 23:14:05 ]
int dec(int y){
int z; z=y-1;
return(z);
}
int inc(int y){
int z; z=y+1;
return(z);
}
int mult2(int y){
int i,j; i=y,j=y;
while(i>0){
i=dec(i),j=inc(j);
}



61 名前:57 mailto:sage [2007/11/03(土) 23:15:34 ]
>>59
おそらくprintfだけの話ではなく、それ以前のソースが間違っているのだと思います。
その間違えを指摘してもらいたいです。

62 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:17:21 ]
decなのに値が増えてないか?
無限ループじゃないの?

63 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:18:35 ]
 int dec(int y){
×int z; z=y+1;
○int z; z=y-1;
 return(z);
 }

64 名前:デフォルトの名無しさん [2007/11/03(土) 23:30:54 ]
さらに、
60のように
while(i>0){
と >=ではなく、>

65 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:45:17 ]
>>47-48
cout << setw(3) << char(i) << ' ' ;の行をコメントアウトしたら、
UCHAR_MAX == 255まで結果が出力されたぞ。

>>46>>48
C++では、std::locale::global(std::locale(""))が
Cでのsetlocale(LC_ALL, "")に相当する。

これには<locale>が必要。

66 名前:nkkn [2007/11/04(日) 00:25:05 ]
>>65
ありがとうございます。
うまくいったみたいです。

まとめてみます。
・setlocale(LC_ALL, ""); を設定しないと、
isprintは、カタカナ部分について
0を返してしまう。
なお、
cout << setw(3) << char(i) << ' ' ;
はiが129以降でも出力自体はされる。

・setlocale(LC_ALL, ""); を設定すると、
カタカナ部分についてのisprintの返り値が
ちゃんと0以外(私の環境では255)になる。
一方、
cout << setw(3) << char(i) << ' ' ;
はiが129以降は、(その出力行自体)なにも
出力されなくなる。
この部分をコメントアウトすれば、
途中で止まらず、カタカナも出力される。
これで合っていますでしょうか。

当初の質問の目的が達成されました!
ありがとうございました。


67 名前:nkfを使って日本語ファイルをwstringへ読み込む関数出来たよ [2007/11/04(日) 01:03:45 ]
#include <windows.h>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
void wreadfile(char *inputfile, vector<wstring> &z){
typedef int (__stdcall *FNC)(char*);
typedef void (__stdcall *FND)(char* ,char*);
locale::global(locale("japanese"));setlocale(LC_ALL,"japanese");
HINSTANCE hd = LoadLibrary("nkf32.DLL");
FNC SetNkfOption=(FNC)GetProcAddress(hd,"SetNkfOption");
FND NkfFileConvert=(FND)GetProcAddress(hd,"NkfFileConvert2");
int n;char *tempdir;n=GetTempPath(1, tempdir);
tempdir = new char[n+30];GetTempPath(n, tempdir);
char temfile[20]="nihongohenkanyo";
strcat(tempdir, temfile);
SetNkfOption("-w16L0 -X -Lu -d");
NkfFileConvert(inputfile,tempdir);
fstream fp(tempdir,ios::in | ios::binary );
static wchar_t wbuf[2][1024*1024+20];
int N,flg=0,k;wstring str=L"";
while(!fp.eof()){
fp.read((char *)(wbuf[flg]), 1024*1024);
for(N=fp.gcount()/2+5; wbuf[flg][N-1]==0; N--);
wbuf[flg][N]='\0';
k=0;while(1){
for(n=k; wbuf[flg][n]!='\n'; n++)
if(n>=N){str=(wstring)&(wbuf[flg][k]); flg=1-flg; goto end;}
wbuf[flg][n]='\0';
z.push_back( str + (wstring)&(wbuf[flg][k]) );
if(k==0)str=L"";
k=n+1;}end:}remove(tempdir);}

68 名前:デフォルトの名無しさん [2007/11/04(日) 01:05:57 ]
上のをヘッダファイルに入れて次のようにすれば、vector<wstring>型に1行ずつ入る

#include <string>
#include <vector>
#include "wreadfile.h"
using namespace std;


main(){
vector<wstring> z;
wreadfile("file",z);
for(int n=0;n<z.size();n++)wcout<<z[n]<<endl;
}

69 名前:57 mailto:sage [2007/11/04(日) 01:24:03 ]
>>60
>>62-64
出来ました!ありがとうございました!

70 名前:デフォルトの名無しさん [2007/11/04(日) 04:16:17 ]
すみません
wcoutって危険( 認識できない文字があると落ちる )と思うので、wcoutを自作したいのですが
自作関数に置き換えられますか?



71 名前:デフォルトの名無しさん [2007/11/04(日) 04:20:46 ]
void hyoji (wstring str)とかのほうがいいですかね?

72 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 10:27:49 ]
basic_stringをカスタマイズすれば、できるんじゃね

名前空間に閉じ込めれば、wcoutって名前でそのまま使えるし

73 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 10:33:21 ]
>>70
んなもんは用途に寄るだろ。UTF-8で吐けるんなら問題ねえし、エンコーディングが
仮定できないコンソール出力で、情報を全く失いたくないんなら、出力を
フィルターすべきかもな。
boost::iostreamsなんかが使えると思うよ。

74 名前:デフォルトの名無しさん [2007/11/04(日) 14:24:32 ]
CでIEの今現在開いているURLを得ることってできますか??

75 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 16:37:47 ]
>>74
ActiveXを使う要領でできるけど道のりは遠い。


76 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 16:45:15 ]
今更、参照回数計測クラスを自作するのは時間の無駄でしょうか?
やはりshared_ptrを使うのが当たり前ですかね?

77 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 17:10:22 ]
>>76
よく分かってるじゃない。

78 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 17:28:45 ]
>>76
「参照回数計測クラスを自作する」ことが目的じゃなければそうすべき。

79 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 18:06:08 ]
>>77
>>78
レスどうも。C++の勉強のために一度作って動かして、
あとはライブラリを使用します。
仕事でC++を使うときに皆さんどうしてるのかなと思いまして。

80 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 19:09:26 ]
MSDNの↓をC:/1111.bmpに変えて動かしてみたんだが、エラーがでるんだぜ。
なんでなんだぜ

Image image(L"Grapes.jpg");
graphics.DrawImage(&image, 60, 10);

Image image(L"C:/1111.bmp");
graphics.DrawImage(&image, 60, 10);

あと、線を引いてみよう、文字列を書いてみようも試してみたんだが、画面がマッシロなままなのさ!



81 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 20:05:55 ]
bccでcをやっています。最近OpanGLを始めました
そうしたら影を付けるところで止まります。
コンパイルは出来るのに、実行すると止まります。
どうすればいいでしょうか。

82 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 20:18:04 ]
どういう方法で影を付けようとしてるのかわからんから、答えようがない
具体的にどの関数をどういうふうに使ったのか

それと、そこで止まるっていうのはどうやって確かめた?
実は他のところで止まってるのかもしれんぞ

「止まる」っていうのも、もう少し具体的に
アニメーションしてるのが止まるのか、キーやマウスの反応がなくなることなのか、エラーメッセージが出て強制終了くらうことなのか、OSごと落ちるのか

83 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 20:20:27 ]
つまりソースとエラーメッセージを出せ、と。

84 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 20:21:26 ]
デバッガ…は無理そうだから、printf(MessageBox)デバッグだな。

85 名前:分からないから寝る mailto:sage [2007/11/05(月) 00:44:19 ]
ボーランドのturbo c++(forWin95)を見つけたので図書館からTURBO C++ジョイフルプログラミングという本を借りてきたのですが・・・
一番最初のたった5行の文がコンパイルするとエラーを吐きます

main()
{
 printf("C言語で遊ぼう\n");
 while(!kbhit());
}

3.4行目共にCall to undefined function なんですがなにが悪いんでしょうか?

86 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:12:11 ]
C++ではプロトタイプ宣言のない関数は呼び出せない。
ちゃんと適切なヘッダをインクルードする必要がある。

87 名前:デフォルトの名無しさん [2007/11/05(月) 01:48:19 ]
Visual C++ 2005 EE と GCC ではちょっと動作が違うみたいですが、
どちらを使って勉強をすればいいのでしょうか?

88 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 02:13:05 ]
さぁ?

89 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 02:16:04 ]
変数名の付け方で時々悩むのですが、
みなさん「ハンガリアン記法」ってのを使ってますか?

90 名前:80 mailto:sage [2007/11/05(月) 02:25:10 ]
仕事で強制されたら使うけど、個人的なプログラムでは使わない
といっても、java使いなんで、Cだとどうなることやら


エラーの原因がトンと分からなかったので、FromFileで読み込めるようなので試してみた。
Image::FromFile(L"1111.bmp");
Image::FromFile(L"C:\\1111.bmp");
Image::FromFile(L"C:/1111.bmp");

ぜんぶ0x00000000(null?)が返ってくる。なんで?
内部で画像の読み込みに失敗して、javaでいうヌルポでも発生してたんかしら?



91 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 02:30:19 ]
>>87
GCCの方が文法に厳しいので勉強するならGCC

92 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 02:35:18 ]
こういう時に注意かな
for(int i=0;i<10;i++) cout << i << endl;
cout << i << endl;

で、いらないテクニックを覚える…と
#define for if(1)for

93 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 07:59:41 ]
>>89
タイプの方なら自然と使ってる。ってか便利。
システムの方は自然と使わなくなった。

94 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 08:16:02 ]
>>92
さすがに、それはVC++でもNET 2003あたりから
コンパイル通らないほうがデフォルトになった。

>>93
それをいうならアプリケーションハンガリアンではないのか?

95 名前:デフォルトの名無しさん [2007/11/05(月) 12:21:07 ]
index が1000万あるとします 
indexごとにファイルを読みに行くとします
このとき、ファイルを一つにまとめるのと、一つ一つ分けるのと、いくつか束にするのではどれが速度速いですか?
ランダムに3個程度のindex値をアクセスすることにします

96 名前:デフォルトの名無しさん [2007/11/05(月) 12:29:25 ]
一ファイル当たり10KB以下として、indexは10万とします
このときファイルサイズは最大1Gになります 
indexは、0から10万の数字で与えられるとします
indexごとにファイルの位置を記録しておくか、index名のファイルを10万用意するかですが
どっちが良いですか?

97 名前:デフォルトの名無しさん [2007/11/05(月) 13:00:49 ]
あまり細かく分けると、クラスタサイズの制限から容量多く使ってしまいますね
10バイトしか記録しなくても512バイト程度使ってしまいますね

98 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 14:31:55 ]
Unicode, ShiftJIS, EUC
あたりを相互変換できる文字コードライブラリを探しています。
・言語はCオンリー
・ライセンスがBSD以下のゆるさ
・サイズはなるべく小さめ
・ポータブル
の条件に合うよさげなライブラリがあったら教えてください。
よろしくお願いします。

99 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 15:53:16 ]
スレ違いでね?

100 名前:デフォルトの名無しさん [2007/11/05(月) 16:58:31 ]
配列の入力の時に,EOFだと-1入力で終了になりますよね?
改行で入力終了にしたいのですが,どうすればいいですか?
1 1 0 0 1 0 1 1 改行
で入力を終了したいです。
教えてください。よろしくお願いします。

//---- 配列入力
num = 0;
do {
 scanf("%d", &arr[num]);
} while ( arr[num++] != EOF );   // 改行は入力の終了
num--;                // 有効な入力数




101 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 17:45:46 ]
>>100
マルチすんなカス

102 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:23:00 ]
>>100

char buf[MAXSIZE];
char *p;

fgets(buf, 99, stdin);

p = strtok(buf, " ");

while(p != NULL) {
 arr[num++] = atoi(p);
 p = strtok(NULL, " ");
}

103 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:24:02 ]
>>100
訂正

char buf[MAXSIZE];
char *p;

fgets(buf, MAXSIZE - 1, stdin);

p = strtok(buf, " ");

while(p != NULL) {
 arr[num++] = atoi(p);
 p = strtok(NULL, " ");
}


104 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:26:35 ]
他の言語のソースを移植すれば良くね?
サイズ小さいライセンスも気にしない

105 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:48:49 ]
-Lオプションで指定したディレクトリのうち
その中にある特定のディレクトリを参照させないようにするにはどうすればいいですか?

たとえば
-L/usr/local/lib と指定したもののうち /usr/local/lib/gcc-4.0.4 は参照しないようにする
とかいう感じです

106 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:02:23 ]
>>95-96
速度は実測が基本。
良い悪いの判断は本人にしかできない。

107 名前:デフォルトの名無しさん [2007/11/05(月) 21:07:59 ]
巨大なファイルのシーク時間と、ファイルのオープンに要する時間は一般的にどっちがかかるんですか?
ファイルのオープンの方がコストは多そうですが

108 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:09:47 ]
>>107 聞く前に試せよサル

109 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:20:47 ]
>>107 聞く前に試せよサル

110 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:44:45 ]
>>107
使用するファイルシステムによっても違うしだろうし、ファイルシステム上の断片化などの状態にも依る。
キャッシュに乗ってるかも影響するはず。
試せ。



111 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 22:21:46 ]
C++でAPIを組んでいるのですが
ttp://www.katsakuri.sakura.ne.jp/src/up29024.txt.html
この項目を入れたら
0x00412984 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00090f44 を読み込み中にアクセス違反が発生しました。
とエラーが出るようになったのですが、どこがおかしいのでしょうか?
作っているプログラムの内容は、チェックボックスにチェックが入っているところにEDITボックスを表示する、と言う感じです。
選択した場所によってはうまく動作することもあります。

112 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:37:59 ]
ぶった切り失礼します

文字列をlongに変換するstrtol()という関数ですが
失敗時の返り値が0なのはいいのですが、文字列が"0"だったときの区別のつけ方は
変換不可能な文字列へのポインタの格納先を準備してあげるしかないのでしょうか?

113 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 01:31:55 ]
自作関数作れば?
long mystrtol(char *cary, char **ep)
{
if(!strcmp(cary,"0"))
return 0L;
return strtol(cary,ep,10);
}
こんなのとかさ

114 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 01:58:10 ]
>>113にツッコミたくてたまらない俺はまだまだ修行が足りないな。

115 名前:デフォルトの名無しさん [2007/11/06(火) 02:16:20 ]
>>114
つっこんでやれよ、本人のためにもさ

116 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 02:16:44 ]
sscanfとか、StrToIntExとか

117 名前:デフォルトの名無しさん [2007/11/06(火) 02:24:27 ]
893が75キロ VS 105キロの空手家 体重差 30キロの殴り合い映像
video.nifty.com/cs/catalog/video_metadata/catalog_071105039557_1.htm
店でNo4 ホスト VS 黒帯空手家 死闘の映像
video.nifty.com/cs/catalog/video_metadata/catalog_071104039294_1.htm
イケメン ホスト VS ブルースリー ボコボコに殴る映像
video.nifty.com/cs/catalog/video_metadata/catalog_071103039028_1.htm
893 VS ブルースリー 対決映像
video.nifty.com/cs/catalog/video_metadata/catalog_071102038922_1.htm

118 名前:デフォルトの名無しさん [2007/11/06(火) 05:27:21 ]
算術命令圧縮って弱点あると思うんですが
例えば0 1の出現率が等しいとするとどのビット列も同じ確率になりますよね?
データの並び順を考えないと駄目ではないですか?
たとえば0000000000000000000000000000011111111111111111111111111111111などは
繰りかえし数を記録することでかなり圧縮できると思うのですが

119 名前:デフォルトの名無しさん [2007/11/06(火) 05:42:46 ]
算術命令圧縮ではなくて算術圧縮だったよ 
あと、文書を圧縮するならば前の1、2バイトごとに確率分布表を作って圧縮するといいと思うけど

120 名前:デフォルトの名無しさん [2007/11/06(火) 06:39:22 ]
算術の説明だと、1文字ずつの説明だけだけど、初めから5文字の分布を与えても出来るね
確率1%のものがあれば、2^(-7) = 0.0078125 だから小数点以下7桁程度を与えるのが良いと言うことになる
ハフマン圧縮の一般化といえるね



121 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 13:49:45 ]
class BaseClass{
public:
int a;

BaseClass(){};
~BaseClass(){};
virtual void Func(){};
};

class SubClass : public BaseClass{
public:
int b;
void Func(){};
};

int main(){

BaseClass *pointer = new SubClass[2];

for(int i=0; i<2; i++) pointer[i].Func();

delete [] pointer;

return 0;
}

これでエラー起こるの何故

122 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 13:53:35 ]
>BaseClass *pointer = new SubClass[2]; 

配列へのポインタはキャストしてはいけない

123 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 13:58:11 ]
>>122
もし上みたいに子クラスのインスタンスの配列を親クラスのポインタに入れて使いたい場合どうしたらいいんですか?

124 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 14:04:50 ]
親クラスのポインタの配列を作れば良いじゃないか。

125 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 14:17:58 ]
申し訳ない…
具体的にはどんな書き方に…?

126 名前:125 mailto:sage [2007/11/06(火) 14:22:08 ]
自己解決しました
ありがとうございました

127 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 17:52:46 ]
そういうのも自己解決って言うのかw

128 名前:デフォルトの名無しさん [2007/11/06(火) 19:06:46 ]
ディジタル技術検定の問題集で「二つの正の整数の積を求めるプログラム」の解説をお願いします。
二つの正の整数の積ということなのですが、二つの整数をかけるだけ(a*b)ではいけないのでしょうか?
while文の処理がさっぱりわかりません。
よろしくお願いします。

#include <stdio.h>
void main(void){
int a,b,prod=0,temp;
printf("a="); scanf("%d",&a);
printf("b="); scanf("&d",&b);
if(a>b){
temp=a;
a=b;
b=temp;
}
while(a != 0){
if(a%2 == 1) prod +=b;
a=a/2
b=2*b
}
printf("product of %d * %d = %d", a, b, prod);
exit(0);
}

129 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 19:31:10 ]
ループ中の計算をシフトとビット演算で置き換えると
乗除の演算なしで掛け算が出来るなぁ…、なんて。

130 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 19:33:33 ]
燦然と輝くvoid main(void)



131 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 19:37:32 ]
>>128
小学校で習った掛け算の筆算を二進数でやってるようなもんだ

132 名前:128 mailto:sage [2007/11/06(火) 19:40:53 ]
>>129 こういうことですか?

while(a != 0){
if(a%2 == 1) prod +=b;
a=a >> 1 /* a=a/2 */
b=b << 1 /* b=2*b */
}


133 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 20:28:03 ]
>>129
そこはコンパイラの最適化に期待ということでは?
もっとも、これくらいならC/C++でもシフト使えということは同意。

134 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 22:35:19 ]
というか、そこで*を使ってしまうと、
「じゃあ(a*b)でよくね」みたいな話になるから(w

135 名前:デフォルトの名無しさん [2007/11/07(水) 19:47:22 ]
class hoge : public base
{
private:
base* m_base;
};

これって循環ですか?

136 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 20:25:07 ]
開発中によく見る記述ですが何か心配なことでも?

137 名前:デフォルトの名無しさん [2007/11/07(水) 20:58:33 ]
循環なら避けたいんですが、
循環ですか?

hogeの定義にbaseが必要で
でもhogeはbaseを持ってるので
なんか循環っぽいなぁと。

138 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:13:18 ]
ならお前の避けたい循環の意味をちゃんと書けやタコが

139 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:16:02 ]
知ってる人に聞ければいいです。
そもそも知らない人は
自分が知らないのに人に教えられるわけがないでしょう。

140 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:18:34 ]
それじゃ、誰にも答えられないね。



141 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:20:44 ]
>>140
全知全能の神光臨。

142 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:29:49 ]
循環じゃないよ

143 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:30:14 ]
とりあえず循環参照が起こる可能性は充分すぎるほどに有るわな。
ただ場合によるので、具体的にやりたいことを示してくれないと問題点の指摘は出来ん。

144 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:33:34 ]
baseの定義にhogeを必要としてたら循環定義

145 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:35:38 ]
循環ってのは
class sage の宣言に class age を使ってて
class age の宣言に class sage を使ってる場合。

よって循環ではないべ?

146 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:36:24 ]
>>135
普通に連結リストかなんかでありそうな気がするが

147 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:38:30 ]
>>140の立場wwwwww

148 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:43:03 ]
で、結局どっちの意味で循環って言ってるのよ?>>135は。

149 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:43:04 ]
>>135
あほすぎ

150 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:55:38 ]
>>149 = 顔をつぶされた>>140



151 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:08:21 ]
>>150
はずれ

152 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:19:11 ]
>>135
エスパーがいない可能性を考えないのか?






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

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

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