探検
0からの、超初心者C++相談室
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/11/12(月) 14:55:13.35ID:Tf74ZWQr 何にも知らない0からの出発、超初心者のためのC++相談室
2018/11/12(月) 15:33:07.21ID:uNoTWhhe
まずC#を覚えます
3デフォルトの名無しさん
2018/11/12(月) 15:41:29.72ID:D6ILV7Jx >>1
乙
乙
2018/11/12(月) 16:05:28.85ID:JkRQG90v
C99に準拠したCプログラムってC++コンパイラで完全にビルドできますか?
5さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/12(月) 16:09:07.07ID:Uo1L8t18 >>4
型キャストが必要な場合と、C++キーワードに引っかかるケースがあるから、コンパイルできるとは限らない。
型キャストが必要な場合と、C++キーワードに引っかかるケースがあるから、コンパイルできるとは限らない。
6さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/12(月) 16:21:58.14ID:Uo1L8t18 例えば、classという名前の変数がある場合は、C++ではコンパイルできない。
void *型の変数にint *の値をキャストなしに代入しようとすると、C++ではコンパイルエラー。
void *型の変数にint *の値をキャストなしに代入しようとすると、C++ではコンパイルエラー。
7デフォルトの名無しさん
2018/11/12(月) 16:35:33.39ID:D6ILV7Jx2018/11/13(火) 08:18:22.77ID:0Ele5WZ8
9デフォルトの名無しさん
2018/11/13(火) 18:41:26.33ID:90McxFB4 extern "C" {}って書いてる?
10デフォルトの名無しさん
2018/11/13(火) 21:54:10.86ID:RYrE2D9k まずCから
Cも分かってないのにC++とかムリ
Cも分かってないのにC++とかムリ
11デフォルトの名無しさん
2018/11/13(火) 22:08:24.41ID:bZ0HXQ7X C99頃から互換性も無いし、別言語だからそうでも無いけど、どっちかと言うとCのprintfに影響受けてる言語の方が多いね。
どっち先に覚えても良いけど、Cのprintfは押さえておいた方がいい。
(ただ、経験的にC++のオブジェクト指向を覚えるにはJavaかC#から入った方がいいので、挫折したらそっちを一旦勉強する事を勧める)
どっち先に覚えても良いけど、Cのprintfは押さえておいた方がいい。
(ただ、経験的にC++のオブジェクト指向を覚えるにはJavaかC#から入った方がいいので、挫折したらそっちを一旦勉強する事を勧める)
2018/11/13(火) 22:32:00.82ID:qjyppvvr
今の最新の規格ならだいぶ使いやすくなってるはず
とりあえず変数にはconstを付けれ
とりあえず変数にはconstを付けれ
2018/11/13(火) 23:50:04.90ID:kE0CzrCg
C++とJavaのオブジェクト指向って、なにが違うのでしょうか?
14さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/13(火) 23:59:43.80ID:700gS9mA >>13
C++は、new を付けたらポインタ型になるが、Javaはnewを付けたら参照型になる。
C++は、new を付けたらポインタ型になるが、Javaはnewを付けたら参照型になる。
2018/11/14(水) 00:06:33.69ID:bV3/fRvw
>>14
JavaよりC++のほうが難しいといわれるのは、ポインタがあるからっていう意味合いが大きいんでしょうか?
JavaよりC++のほうが難しいといわれるのは、ポインタがあるからっていう意味合いが大きいんでしょうか?
16さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/14(水) 00:19:07.08ID:XVbpx9nj17さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/14(水) 00:36:22.61ID:XVbpx9nj まず、ポインタ変数の宣言が初心者殺し。
int* a, b;の場合、bはポインタではない。
関数ポインタはさらに文法が複雑すぎる。
関数ポインタ型の複雑さから逃れるには、typedefを使うとよい。
int* a, b;の場合、bはポインタではない。
関数ポインタはさらに文法が複雑すぎる。
関数ポインタ型の複雑さから逃れるには、typedefを使うとよい。
18さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/14(水) 01:24:53.28ID:XVbpx9nj ポインタ型をtypedefしまくった環境がWindowsのWin32 APIだ。
intを大文字でINTと書く。intのポインタをLPINTと書く。unsigned intをUINTと書き、そのポインタをLPUINTと書く。
基本的な関数型は全てtypedefで定義済み。
これなら、ややこしいアスタリスク記号(*)に戸惑う必要はない。
intを大文字でINTと書く。intのポインタをLPINTと書く。unsigned intをUINTと書き、そのポインタをLPUINTと書く。
基本的な関数型は全てtypedefで定義済み。
これなら、ややこしいアスタリスク記号(*)に戸惑う必要はない。
19さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/14(水) 01:35:38.43ID:XVbpx9nj 型を大文字で書くと分かりやすいという意味で、Win32ではよく使うポインタ型を全て大文字で定義している。
char *にはLPSTRを、const char *にはLPCSTRを用意している。
char *にはLPSTRを、const char *にはLPCSTRを用意している。
2018/11/14(水) 03:03:41.18ID:aCPH/+gx
なんてことを昔の人は考えたが、当然スマートポインタのほうがより安全である
21デフォルトの名無しさん
2018/11/14(水) 07:23:04.49ID:XWwMTSMS22デフォルトの名無しさん
2018/11/14(水) 11:35:25.78ID:zVp4oIsl23デフォルトの名無しさん
2018/11/14(水) 11:36:41.07ID:zVp4oIsl あとtypedefしてる型を型チェックのときに同一とみなすのが意味ない
せっかく型を別けてるのに
せっかく型を別けてるのに
24デフォルトの名無しさん
2018/11/14(水) 12:34:52.66ID:OvTvaibz 整数を定義するときって以下の3つだとどれがメモリ消費量とか実行速度の面で一番効率いいですか?
#define XXX (1234)
enum{ XXX = 1234};
constexpr int XXX = 1234;
#define XXX (1234)
enum{ XXX = 1234};
constexpr int XXX = 1234;
2018/11/15(木) 08:07:09.42ID:HNIzCpqS
効率は実測が基本
26デフォルトの名無しさん
2018/11/15(木) 12:16:37.45ID:lNkjj0jr >>24
今時のコンパイラならどれも同じになるだろうけど、#defineはただの置き換えだから、実質直接数字に置き換える。
お馬鹿なコンパイラなら、これが一番速い。
(メモリ上のXXXに格納された1234をレジスタに読むのじゃ無く、レジスタに直で1234と書き込むので、メモリアクセス分は速い)
今時のコンパイラならどれも同じになるだろうけど、#defineはただの置き換えだから、実質直接数字に置き換える。
お馬鹿なコンパイラなら、これが一番速い。
(メモリ上のXXXに格納された1234をレジスタに読むのじゃ無く、レジスタに直で1234と書き込むので、メモリアクセス分は速い)
2018/11/15(木) 17:16:40.52ID:XHYJGLe7
constexprが候補に上がる時点で最新のコンパイラだと思われる
2018/11/15(木) 22:39:39.09ID:jenSGLjX
AIの力でコンパイラの性能を上げるって可能ですか?
29デフォルトの名無しさん
2018/11/16(金) 09:32:03.61ID:37LYr8ZY a = xxx;
a = yyy;
これは、二重定義になりますか?
a = yyy;
これは、二重定義になりますか?
3029
2018/11/16(金) 09:41:00.05ID:37LYr8ZY 解決方法として
a = ("xxx" && "yyy");
を考えているのですが、これで良いでしょうか?
a = ("xxx" && "yyy");
を考えているのですが、これで良いでしょうか?
31デフォルトの名無しさん
2018/11/16(金) 11:34:07.59ID:9iOixtPe a[] = {xxx, yyy};
3229
2018/11/16(金) 11:52:01.81ID:37LYr8ZY >>31様
ありがとうございます!
ありがとうございます!
33デフォルトの名無しさん
2018/11/20(火) 23:59:39.03ID:GRv3bnvn up
34デフォルトの名無しさん
2018/11/21(水) 04:04:25.43ID:C09+uG2D 整数型とbool型を比較したり代入しようとしたときに警告かエラーを出す方法はありますか?
int i=5;
bool b=true;
i=b;
if(i==b)
if(i)
↑3行すべてでエラーなり警告なりを出してほしい
b=i;とif(b==i)は警告が出ます
環境はvs2017です
int i=5;
bool b=true;
i=b;
if(i==b)
if(i)
↑3行すべてでエラーなり警告なりを出してほしい
b=i;とif(b==i)は警告が出ます
環境はvs2017です
35さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/22(木) 03:29:53.66ID:by2crdt6 C/C++ではありえません。不可能です。
2018/11/22(木) 06:04:18.72ID:94o8kAxO
>>34
C++のboolのサイズはcharと同じだから
b=i: で警告になるのは整数型と論理型の変換というより単にサイズの小さい方に
代入しようとしたから警告になるてことだろうね
boolを使わずに Booleanクラスとかを自分で作れば型変換の許可/不許可も自在だけど
ま、やらんわな。そんな非効率なことは
C++のboolのサイズはcharと同じだから
b=i: で警告になるのは整数型と論理型の変換というより単にサイズの小さい方に
代入しようとしたから警告になるてことだろうね
boolを使わずに Booleanクラスとかを自分で作れば型変換の許可/不許可も自在だけど
ま、やらんわな。そんな非効率なことは
2018/11/24(土) 11:20:27.36ID:pkYVxqhq
34です
遅くなりましたがありがとうございます
自作クラスを作ってまでエラー出したいものでもないので気にしないことにします
遅くなりましたがありがとうございます
自作クラスを作ってまでエラー出したいものでもないので気にしないことにします
2018/12/02(日) 21:29:56.53ID:jrjT9DL9
MSがC++をCより勧める利点ってなんでしょう。
.NET関連で商売する為にC#などの利用を推奨するのは理解できるのですが
C++に拘りC99にすら対応しないのは何かよっぽどの理由があるのかなと思ってしまいます。
.NET関連で商売する為にC#などの利用を推奨するのは理解できるのですが
C++に拘りC99にすら対応しないのは何かよっぽどの理由があるのかなと思ってしまいます。
39デフォルトの名無しさん
2018/12/03(月) 21:46:10.27ID:ZMLOrV5M .net以前はMFCで商売してたからね。
その遺産を保守するのにC++が必要。
今でもそう言う会社相手に商売してる。
今はまだマシだけど、開発環境独占だと標準規格無視してた。
対応しなくても売れるのに、対応する必要は無いわな。
その遺産を保守するのにC++が必要。
今でもそう言う会社相手に商売してる。
今はまだマシだけど、開発環境独占だと標準規格無視してた。
対応しなくても売れるのに、対応する必要は無いわな。
40デフォルトの名無しさん
2018/12/03(月) 21:49:11.54ID:jYfXM2LM41デフォルトの名無しさん
2018/12/05(水) 04:20:50.45ID:yf36y6mU enum EN { yama,kawa}
をアクセスする規則がわかりません。 EN.yama の時もあれば 単にyamaの
時もあります。規則はどうなってるんでしょうか?
をアクセスする規則がわかりません。 EN.yama の時もあれば 単にyamaの
時もあります。規則はどうなってるんでしょうか?
42デフォルトの名無しさん
2018/12/05(水) 14:48:45.83ID:2sSegHBZ namespace
2018/12/05(水) 23:17:47.17ID:P1XQw2I4
C++ならEN.yamaはあり得ないだろう
44デフォルトの名無しさん
2019/01/09(水) 10:11:37.02ID:Gyfngzmc 新年記念up
45デフォルトの名無しさん
2019/01/11(金) 18:31:10.60ID:TUR+WyZ1 win16からwin32への移行では役に立ったのかもしれない。
2019/01/22(火) 13:59:06.16ID:owIFG1wt
ゼロが流行っているのか?
47デフォルトの名無しさん
2019/08/28(水) 20:07:30.06ID:Y6mSCMlM Cは習わないとダメですか?
2019/08/29(木) 10:03:19.38ID:Pek3Dpqo
c++相談室だぞ
習わなくていいなんて答えるヤツはいないぞ
習わなくていいなんて答えるヤツはいないぞ
2019/08/30(金) 20:54:35.96ID:QpJdGFlG
いやCの勉強なんてしなくていいよ
最初からC++の勉強をすればいい
最初からC++の勉強をすればいい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと3カ月… [BFU★]
- 【裁判】山上徹也被告の妹「この人は母のふりをした旧統一教会の信者だと思いました」「でも、母の形をしているから突き放せなかった」 [1ゲットロボ★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★3 [Hitzeschleier★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★5 [樽悶★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 歩道で93歳男性が女子大学生の自転車にはねられ意識不明 坂を下った先「気付いたときには目の前に」 [七波羅探題★]
- 「あれ?円安加速の戦犯って高市じゃなくて岸田と石破じゃね?」という風潮、急速に高まるwww [759043982]
- 高市コインまもなく158円 [931948549]
- 🍣にゃっはろ🌸~スシろ~🏡
- 【パズドラ】パズル&ドラゴンズ総合雑談スレ🏡【山本大介】
- 日本「中国のレアアースに71%依存してます。2024年のデータです」 ネトウヨ「え?youtube解説と違うんだけど」 [633746646]
- 【悲報】山上の母親に統一協会を紹介したのは自民党員だった😨 [868050967]
