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


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

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



1 名前:デフォルトの名無しさん [2017/11/04(土) 16:33:35.07 ID:NYxCuvMY.net]
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1500329247/

136 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 15:16:24.33 ID:XeWd0teH.net]
>>132
さっそくありがとうございます。fscanf(fp,"%d",&count)と訂正しました。
初歩的なミスで申し訳ありませんでした、そしてありがとうございました。

137 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 15:18:37.18 ID:Jd1ioDh8.net]
>>131
> fscanf(fp,"log.txt",&count);
二番目の引数を再確認してみ

138 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 15:35:47.69 ID:XeWd0teH.net]
>>134
ありがとうございました。
おかげさまで正常にカウントされるよになりました。
確認不足でご迷惑おかけしました。ありがとうございます。

139 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 18:53:18.55 ID:K6qIkKEG.net]
超初心者です
c言語でGetPixelが動きません
どうすれば直るのか教えてください

COLORREF GetPixel (float 変数x, float 変数y); //指定座標の色取得。

if float GetPixel(float 変数x, float 変数y == RGBCOLOR( 0, 0,255)) ; //指定座標のピクセルが青色ならコード実行

//以下、実行するコード

140 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 19:09:54.54 ID:4pmjT1Fk.net]
>>136
>if float GetPixel(float 変数x, float 変数y == RGBCOLOR( 0, 0,255)) ; //指定座標のピクセルが青色ならコード実行

if (GetPixel(x, y) == RGBCOLOR( 0, 0,255)) {
条件が真のとき実行するコード
}
ではどうですか?

141 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 17:32:02.17 ID:K3o+GgF3.net]
boost::qiって読み方ブースト・チーでいいの?

142 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 18:32:18.36 ID:m/Ygi57i.net]
boostのパーサの使い方わかんね

143 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 21:33:58.20 ID:K2rBoL+r.net]
>>138


144 名前:デフォルトの名無しさん [2017/12/05(火) 04:28:16.53 ID:NJ16QKFF.net]
組み込みの場合例えばRs232Cのチャンネルが三つあるようなばあいにクラスに
するとIOの初期化がそれぞれ違う。しかもチャンネル1を初期化するとチャンネル3
にも影響する場合がある。こういう場合にはどんな風にクラスをつくったらいい?



145 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 10:59:54.97 ID:BooJAJ3p.net]
よろしくお願いします。

fp=fopen("out.txt","r");
while(fscanf(fp,"%d",&da2[i])!=EOF){
fscanf(fp,"%d",&da2[i]);
i++;
}
fclose(fp);

これを実行するとテキストファイルに記録されている整数を
一行飛ばしで読みだしてしまいます
どうして飛ばされる行ができてしまうのでしょうか?

146 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 11:22:39.33 ID:tMsGMSrl.net]
>>141
friend

147 名前: mailto:sage [2017/12/05(火) 11:42:25.43 ID:x6DQdw1l.net]
>>142
fscanf() を二箇所に書いているけれども、それでいいのですか?

148 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 11:54:34.95 ID:GUcDlKUg.net]
>>142
whileでのfscanfのあとでiを変更してないから次のfscanfで同じda2[i]に上書きしてる

149 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 12:02:08.68 ID:BooJAJ3p.net]
>>144>>145
そういう事だったのですね
ありがとうございました!

150 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 15:40:18.03 ID:BooJAJ3p.net]
再びよろしくお願いいたします。

int main(){
char ch1,ch2;
printf("二文字入力\n");
scanf("%c",&ch1);
 scanf("%c",&ch2);
printf("ch1=[%c]\nch2=[%c]\n",ch1,ch2);
return 0;
}
これを実行すると、2回目のscanfを飛び越えてしまいます。
その理由と回避方法をご指南いただけませんでしょうか?
よろしくお願いいたします。

151 名前:片山博文MZ mailto:sage [2017/12/05(火) 15:46:59.33 ID:KBxdaLdg.net]
再びよろしくお願いいたします。

int main(){
char buf[3], ch1,ch2;
printf("二文字入力\n");
fgets(buf, 3, stdin);
ch1 = buf[0];
ch2 = buf[1];
printf("ch1=[%c]\nch2=[%c]\n",ch1,ch2);
return 0;
}

152 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 16:20:49.08 ID:BooJAJ3p.net]
>>148
ありがとうございます
標準入力によって処理し、scanfを使わないということなのですね
文法を覚えて活用できるようにします
何度もありがとうございます

153 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 16:50:17.51 ID:VZfNuCLu.net]
>>147
改行文字を次のscanfで読込むから
回避方法は例えば
ttp://blog.unfindabl

154 名前:e.net/archives/604 []
[ここ壊れてます]



155 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 16:59:28.01 ID:BooJAJ3p.net]
>>150
ありがとうございます
しっかり理解できるには時間がかかりますが
とりあえず、お礼申し上げます
改行文字を処理しないと次のscanfが改行文字を読んでしまうのですね
とても勉強になりますし、皆様のおかげで前進できます
ありがとうございます

156 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 00:17:29.58 ID:fcKh4od9.net]
皆すげーな
俺みたいなライブラリのインクルードが通せなくて
そもそもコンパイルって何だっけってところから調べるような奴には恐れ多いわ

157 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 12:53:50.82 ID:4zvLzkC0.net]
毎日すみません。ご教授お願いします。

out,txtに記録されている下記文字に対して
---------------
AAA BB
ababb
099
---------------
ファイルを開いて、文字列を読み出し
配列で一文字一文字を表示させようとしています

i=0;
fp=fopen("out.txt","r");
while(fscanf(fp,"%c",&c)!=EOF){
i++;
}
for(t=0;t<=i;t++){
printf("%c\n",c[t]);
}

これだと18行表示されますが
表示されたのは全く異なるものでした
どこが不適切なのか2日考えても分かりません
いつも申し訳ありません><よろしくご指導願います

158 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 13:10:52.74 ID:dicAL8ON.net]
>>153
c は大きさの十分ある char への配列と想定した前提で
fscanf の引数がおかしい

1文字毎に配列へ順繰りに読み込ますのなら
 fscanf(fp,"%c", &c[i]);
こうなってないと

159 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 13:39:27.89 ID:4zvLzkC0.net]
>>154
&が抜けていたのは恥ずかしいです
申し訳ありませんでした
しっかり覚えさせていただきます

プログラムもちゃんと動きました
いつも簡単なことばかりなのに理解が浅くてすみません
とても勉強になりました。ありがとうございました

160 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 16:08:02.33 ID:dicAL8ON.net]
書いてあることが違うけど(&が抜けていたのではなく [i] がない)
本当に分かっているのか不安になる返答だが、そのうち慣れてくるだろう。

(文字と文字列の違いと (f)scanf に渡すフォーマットの指示と 変数をどう渡すか
 の一連が整理されてないと、また繰り返すだろう)

161 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 16:29:02.63 ID:4zvLzkC0.net]
>>156
はい、ありがとうございます。
配列にして直してあります。
fscanf(fp,"%s",c)として読み込んだ後に
c[i]で一文字一文字表示させられると思い込んでいました

先ほどの156のおかげでfscanf(**** &c[i])を覚えられました
ありがとうございます!感謝してます

162 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 15:46:12.24 ID:b0CgZ3o1.net]
こんにちは。どうか本日もよろしくお願いいたします。
10人分の点数を入れて表示するプログラムです。
下記のように作成したのですが、main()内から関数を呼び出すところで
parameter names(without typesというエラーがでてしまいます。
どうかよろしくお願いします。

#include<stdio.h>
void da(int ten[10]){
int i;
for(i=0;i<10;i++){
printf("%d input ",i);scanf("%d",&ten[i]);
}
return;
}

void out(int ten[10]){
int i;
for(i=0;i<10;i++){
printf("%d人目 : %d点\n",i,ten[i]);
}
return;
}

int main(){
int ten[10];
void da(ten);
void out(ten);
return 0;
}

163 名前:片山博文MZ mailto:sage [2017/12/08(金) 15:56:23.80 ID:8LWGXCju.net]
>>158

#include <stdio.h>
void da(int ten[10]){
int i;
for(i = 0; i < 10; i++){
printf("%d input ", i); scanf("%d",&ten[i]);
}
}

void out(int ten[10]){
int i;
for(i = 0; i < 10; i++){
printf("%d人目 : %d点\n", i + 1, ten[i]);
}
}

int main(void) {
int ten[10];
da(ten);
out(ten);
return 0;
}

164 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 16:02:05.10 ID:C0Y4l8FE.net]
そろそろうっとしいな



165 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 16:06:39.52 ID:b0CgZ3o1.net]
すみません、ここは質問するところじゃなかったのですね
他のC言語のスレから誘導されたので、こちらで質問していいかと思ったのですが
今後質問は控えます。自力で学習を進めようと思います。
ご迷惑をおかけしてすみませんでした。
片山先生、本日もありがとうございました。感謝です。

166 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 05:14:03.17 ID:Nra/Nglb.net]
#pragma pack(1)
struct {
char a;
short b;
int c;
} x;
Cでバイナリデータとかパディング除けに上のような感じに書いて読み書きしたりしますが(例は適当)、
C++ではpragmaを使用せず記述量も少ないスマートな記述方法はあるでしょうか?

167 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 09:10:24.00 ID:67ZudMHx.net]
ない

168 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 09:52:53.87 ID:Nra/Nglb.net]
ありがとうございます。やっぱりないですか。
pragmaがコンパイラ依存とか書かれてて非常に嫌なんですが慣れます。

169 名前:片山博文MZ mailto:sage [2017/12/16(土) 16:18:44.15 ID:2NfYNG63.net]
#include <pshpack1.h>
...
#include <poppack.h>

170 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 02:47:22.67 ID:T7tjmkgj.net]
C/C++は言語自体は好きなんですが、GUIとかがプラットフォームに依存するみたいですが、そういった場合黙ってqt使うのが最善ですか?

171 名前:デフォルトの名無しさん [2017/12/18(月) 01:24:26.49 ID:vrG0ZJDQ.net]
>>164
そのような構造体で直接読み書きしないのがベスト

172 名前:デフォルトの名無しさん [2017/12/21(木) 16:50:57.91 ID:FN6C0PcS.net]
ここが適切かわかりませんが、

make の Makefile を Visual Studio や NetBeans 等の IDE の
プロジェクトファイルに変換するツールはありませんか。

173 名前:片山博文MZ mailto:sage [2017/12/21(木) 16:54:33.43 ID:fHSTQ7CK.net]
makeにはないが、似たようなものにCMakeというものがあって、CMakeならプロジェクトファイルを生成できる。

174 名前:168 mailto:sage [2017/12/21(木) 17:10:02.95 ID:FN6C0PcS.net]
>>169 そこまでは分ったのですが、
Makefile を CMakeLists.txt に変換するのはありますか?

見つけられたのは、nmake.exe 用の Makefile.mak を *.vsproj に変換する、
Python のスクリプトだけでした。。



175 名前:片山博文MZ mailto:sage [2017/12/21(木) 17:15:07.21 ID:fHSTQ7CK.net]
>>170
ない。

176 名前:168 mailto:sage [2017/12/21(木) 17:25:55.41 ID:FN6C0PcS.net]
>>171 ありがとうございました。
CMake 勉強します。

177 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 19:29:59.07 ID:cBwAL66C.net]
ライブラリ作成の指南書みたいな本ってありますか。

178 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 22:23:30.03 ID:9ubHCBZ8.net]
環境によるんじゃ?

179 名前:デフォルトの名無しさん [2018/01/10(水) 01:19:44.15 ID:CtX3Z92R.net]
とりあえず
c++のためのapiデザイン
でも読んでみるといいと思う

180 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 02:59:55.08 ID:QjjLPcN0.net]
読んでみるわ

181 名前:デフォルトの名無しさん mailto:age [2018/01/13(土) 06:17:45.46 ID:hj3TLdcf.net]
定数以外の名前に「 _ 」を使うのって良くないって聞いたけどどうなの?

182 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 09:08:14.97 ID:P3TI7O0+.net]
趣味とか宗教とかの話であって、別に使って問題ない
ただ名前の先頭だったり、2回連続で使ったりすると
予約語に引っかかることがあるので注意(定数の場合も)

183 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 09:13:05.82 ID:M+vRxjCB.net]
その辺有名ライブラリのルール付けとか調べてみるのもいいかもね

184 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 09:23:55.53 ID:M+vRxjCB.net]
GoogleがC++のスタイルガイド公開してる
これも参考になりそう



185 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 10:54:12.13 .net]
C++で何つくんの?
GUIプログラムならC#のほうが圧倒的に簡単だし

186 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 11:06:50.90 ID:E1MTmeKy.net]
CAD

187 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 11:07:58.52 .net]
そんな上級者にしか用途がない言語か

188 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 11:24:35.41 ID:/aUGqjlJ.net]
個人的にC/C++は高級なアセンブラだと思っている
C#とは存在するレイヤが違うから、比較条件として用途を挙げるのはちょっと違うかなって

189 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 11:25:50.16 .net]
で、何つくんの?
高級アセンブリの用途は?

190 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 12:09:46.86 ID:J2S5K16W.net]
画像処理
大規模ゲーム開発

191 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 12:32:40.41 ID:6i0TmEx8.net]
GoogleChrome

192 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:22:26.10 ID:6uwiuQcq.net]
ゲームとか速度が必要な場面でまだまだ使われてるでしょ

193 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 15:46:42.36 ID:e8xaSAkW.net]
CPUパワーを必要とするようなまとまった処理は
C/C++のような低級な高級言語が適している
組み込み用の小規模マイコンもCがほとんど

194 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 19:09:30.75 ID:Vb1E5r0O.net]
Pythonのライブラリも結局はCで作ってたりするしな。



195 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 00:06:48.74 ID:kWLOq5lU.net]
GUIはC#でWPFだけど、そこから使用するdllとか連携するサービスとかはc++。OSのAPIをいろいろ使う場合はC#だと面倒くさいからc++を選ぶ。

196 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 01:07:00.24 ID:X2mlxDcY.net]
OpenGLもC#か大変そうだな

197 名前:愛知人 mailto:sage [2018/01/17(水) 09:14:59.53 .net]
Unityでいいよね

198 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 11:15:20.21 ID:X2mlxDcY.net]
ライセンス料が只ならいいよ

199 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 11:23:31.36 ID:4ILD3/U5.net]
Unityでも速度が必要な場所はC++で書いて呼び出し

200 名前:愛知人 mailto:sage [2018/01/17(水) 11:48:22.30 .net]
なんでC++ってendlいるの?

201 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 12:24:58.46 ID:/z6RTYd5.net]
ちょっと何言ってるかわかんないです

202 名前:愛知人 mailto:sage [2018/01/17(水) 13:34:56.30 .net]
なんでprintf使わないの?

203 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 13:41:03.90 ID:lhJfQamL.net]
浪人と引き換えに無知を手に入れた男

204 名前:愛知人 mailto:sage [2018/01/17(水) 13:43:22.44 .net]
で、返答は?



205 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 14:07:42.46 ID:l2H41H1D.net]
>>198
<cstdio>は正しくC++だからprintf使っても構わん 味噌 よ
後々になって「iostreamはでかいし あんまりうみゃくいかないエビフリャー」いうことになった きしめん だしね
endlは、改行の無い出力と在る出力を統一的に(フォーマット使わずストリームで)扱うには必要でしょ ひつまぶし?

愛知語は詳しくないけど察し手羽先

206 名前:愛知人 mailto:sage [2018/01/17(水) 14:16:18.48 .net]
どうやったらこんなつまんないレスを返せるんだよ...
重症やな w

207 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 14:19:41.37 ID:l2H41H1D.net]
言うな 自分でも検索履歴に「愛知 名物」って残ってるの見て
「人生を無駄にした」と真顔で後悔してるところだから

208 名前:デフォルトの名無しさん [2018/01/17(水) 15:03:17.62 ID:MeUm47mp.net]
何言ってんだこのバカ

209 名前:愛知人 mailto:sage [2018/01/17(水) 16:08:09.91 .net]
あらら、怒っちゃった(笑)

210 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 17:39:52.90 ID:sykUBtM3.net]
C++でしかできないもの作りたいだけど何かいいアイデアない?

211 名前:片山博文MZ mailto:sage [2018/01/17(水) 17:52:07.55 ID:89SqY/Kf.net]
>>206
エクセルのような操作性の、画像レイアウト印刷アプリなんてどう?

212 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 18:18:50.66 ID:sykUBtM3.net]
>>207
印刷はしたくないです..

213 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 20:00:30.20 ID:W2btjMLE.net]
おs

214 名前:デフォルトの名無しさん [2018/01/27(土) 06:58:59.63 ID:1R9xhZBX.net]
windowsとLinuxで動くクライアントアプリ開発してて、Linuxコンパイラは化石みたいなバージョンからgcc4.4をようやく使えるようになった
そこでC+11の一部が使えるようになったから使いたいと思ってる
ユーザにAPIを公開してるんだけど、ユーザがAPIを使うに際してはコンパイルオプションstdc++0xが必要なことにはしたくない。今までできてたのに、バージョンアップしたらコンパイルできなくなったとかいわれるからね。

ここで質問なんだけど、ユーザに公開しているヘッダファイルにC+11の記述がなければ、ユーザからの使い方は変わらないかな?手元で試してみた感じだと行けそうだって思ったけど、このへん危ない



215 名前:じゃないのとか気をつけた方がいいよとかあれば意見よろしくです []
[ここ壊れてます]

216 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 08:45:12.76 ID:x9sgfrz+.net]
バイナリで配布するんだったらとりあえずシンボルをnmで取得して見比べてみるとか。

217 名前:デフォルトの名無しさん [2018/01/27(土) 10:25:52.07 ID:RqfNKOXi.net]
ユーザからクロスコンパイラ提供してもらってバイナリ配布っす
nmコマンド、試す価値はありそうだありがとう

218 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 06:43:38.82 ID:yhuRz+yt.net]
以下のコードをgccでコンパイルすると

#include <iostream>
#include <functional>
using namespace std;

struct functor {
int& operator()(int& i) { return ++i; }
};

int main() {
int i = 0;
cout << functor{}(i) << endl; // 関数オブジェクトは問題なし
function<int& (int&)> lambda = [] (int& i) { return ++i; }; // コンパイルエラー
cout << lambda(i) << endl;
return 0;
}

「'main()::<ラムダ(int&)>' から非スカラ型 'std::function<int&(int&)>' への変換が要求されました」
というエラーになるのですが、どうしてでしょうか?
そもそもラムダ式は関数オブジェクトのシンタックシュガー、つまり等価なのではないんでしょうか?

219 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 07:45:35.06 ID:kxFN6buW.net]
>>213
戻り値がintになってる
戻り値の型を後置で書いてやればいいかな
function<int& (int&)> lambda = [] (int& i) -> int& { return ++i; };

220 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 22:25:05.79 ID:yhuRz+yt.net]
>>214
ありがとうございます。
戻り値の型を明示してあげないと値渡しになってしまうということですね。
勉強になりました。

221 名前:デフォルトの名無しさん [2018/02/06(火) 23:57:09.32 ID:ZZWnbRb2.net]
typedef int myTypeA;
typedef int myTypeB;

class Test {
void set(myTypeA a);
void set(myTypeB b);
priate:
int A;
int B;
};

のような事例で、引数に応じて専用のセッターを用意したいのですが、
int型の2種類の引数に対して、上記のように書くとコンパイルエラーになってしまいます。
どのようにするのが良いでしょうか?

222 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 00:04:25.80 ID:k5RJAFTX.net]
structを使う?
struct my_TypeA{ int v;};

223 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 00:18:25.18 ID:yuAfwWTK.net]
なるほど、、、確かにtypedefだと別名になるだけですね
structかclassで別の型にしないとダメですね
ありがとうございます!

224 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 03:43:04.13 ID:LQaGrglb.net]
オブジェクト指向では、型による分岐処理は無くなる。
汎化

f(親型)

ここに、親型の子型であるA型・B型が入っても、正常に動くのが、オブジェクト指向



225 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 15:21:46.70 ID:+q9wZMZv.net]
などと訳のわからないこと(でもないが)を供述しており

226 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 04:59:49.56 ID:9irhhPDg.net]
C++には強いエイリアスが無いからなあ

227 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 16:21:25.57 ID:UAqVoMsi.net]
C++じvtable参照することになるから遅いだろ

228 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 04:05:35.43 ID:Zrtx8k52.net]
>>216
セットする値の名称にする
例えば三角形を表すオブジェクトで底辺と高さをセットするのであれば、base()とheight()になる
プロパティとして使うのだから、setXXX()みたいに書かなくてもいい

setter単独で存在することはありえないからgetterも設けること
setterって余り必要ない
コンストラクタからの初期化で十分の場合が多い

229 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 14:23:16.60 ID:8l5JrV0a.net]
>>219
だぶるでぃすぱっち

230 名前:デフォルトの名無しさん [2018/03/03(土) 13:43:59.95 ID:Vl4EAVf3.net]
2の累乗でないときのmod演算の高速化の方法、何か

231 名前:ありませんか?
そこらへんはコンパイラで最適化されるんですかね
[]
[ここ壊れてます]

232 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 14:09:48.07 ID:xC+xvi0u.net]
>>225
法を2進数にしたときほとんど1かほとんど0なら手間の少ない方法はある。
法が固定で何度も剰余を取るならモンゴメリリダクションがある。
どちらも乗算はそれなりに必要。

233 名前:デフォルトの名無しさん [2018/03/03(土) 14:14:16.62 ID:Vl4EAVf3.net]
>>226
ありがとう
ちょっと調べてくる

234 名前:デフォルトの名無しさん [2018/03/06(火) 00:16:25.34 ID:EXuXevGu.net]
ユニークポインターにキャラの可変配列をヒープからとってリセットしたはいいけど、デリーターって簡単に実装/定義できる?例が欲しい。



235 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 00:47:05.22 ID:yCnPPW+5.net]
mutex g_Mtx;

int g_Val = 0;

int Func( int A, int B )
{
  int Val = A * B;

  lock_guard<mutex> Lock( g_Mtx );

  return g_Val = Val;
}

void ThreadFunc0()
{

}

236 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 00:55:45.44 ID:yCnPPW+5.net]
mutex g_Mtx;
すみません、途中で送信してしまいました。

int g_Val = 0;

int Func( int A, int B )
{
  int Val = A * B;

  lock_guard<mutex> Lock( g_Mtx );

  return g_Val = Val;
}

void ThreadFunc0()
{
  int Val = Func( 2, 3 );

  // Valを参照する処理
}

void ThreadFunc1()
{
  lock_guard<mutex> Lock( g_Mtx );

  // g_Valを参照する処理
}

上記のようなスレッド関数が非同期に実行されるとき、
Func()はスレッドセーフ(g_Val書き換え中に参照されない)でしょうか?

(1)lock_guard<mutex>によるミューテックスロック
(2)g_Valの書き換え
(3)戻り値を読み出し元スレッドにコピー(あるいはムーブ)
(4)lock_guard<mutex>がスコープから外れアンロック

というシーケンスを期待しています。






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

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

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