- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
681 :デフォルトの名無しさん[]:2018/11/09(金) 03:42:19.86 ID:RK/u55Qe - constつけたらワーニングが無くなるのだろうか? 何故なくなるの?
ポインタにかかるのか、ポインタの中身にかかるのか?という問いだろうけれども恐らくはポインタ自体 にかかるのだろう。そしてconstがポインタの中身にかかる。順番が逆だといろいろ不都合がしょうじる から、このようになる筈だ。 しかし、constを追加しただけでwarnningが消える理由はなんなのだろうか? (char*)でキャストするのと 同じ効果を持ちうるのはなぜか? constにはそんな意味はない。「単に書き換えできないようにする」 と言う意味だろう。書き換えできないsringももちろんあるから矛盾が生じるのだ。その矛盾を 解決する可能性があるとすれば書き換えできないstringがすなわちchar*と同じである場合に限る。 つまり const string とは char* の事なのだ。 あってる? もしあってるとすれば、 constexpr (char*) char *mes[] ={"error", "ok" , "abc"}; でもOKな筈だね。そうでないと矛盾する。この方が分かりやすいね。
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
682 :デフォルトの名無しさん[]:2018/11/09(金) 04:05:10.44 ID:RK/u55Qe - そしてワーニングはすべてきえたが、エラーになった。w
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
683 :デフォルトの名無しさん[]:2018/11/09(金) 04:08:12.56 ID:RK/u55Qe - constexpr const char *mes[] ={"error", "ok" , "abc"};
これをクラスのなかで定義したいのだが、クラスの中で定義するとエラーになる。クラス内だけで使いたいのに 外部に引き出すのは面倒だ。どうしたらいいの?
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
700 :デフォルトの名無しさん[]:2018/11/09(金) 21:19:39.32 ID:RK/u55Qe - 「文字列リテラル型」って表現はよくわからない。文字列はリテラルじゃないの?
文字列のリテラル型というのであればリテラル型でない文字列ってあるんだろうか? リテラルって何? 英語をやくしたら文字列って意味だろ。
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
702 :デフォルトの名無しさん[]:2018/11/09(金) 21:29:35.20 ID:RK/u55Qe - A character literal is a type of literal in programming for the representation of a single character's value within the source code of a computer program.
「文字列リテラル」ってキャラクターリテラルのことだろうか? それなら日本語にすると「文字列」でOKと思う。文字列リテラルって文字列列ってことか? つまりA character literal literal **str のこと?
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
704 :デフォルトの名無しさん[]:2018/11/09(金) 21:31:35.81 ID:RK/u55Qe - それなら文字列配列だよな。
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
706 :デフォルトの名無しさん[]:2018/11/09(金) 21:33:25.58 ID:RK/u55Qe - >>703
アッごめん。704は無視して。 リテラルって、堅物って意味のほうか? そうなんだ。
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
707 :デフォルトの名無しさん[]:2018/11/09(金) 21:39:02.77 ID:RK/u55Qe - literalって頭が固くて融通が利かないって意味があるみたいだから、”abc”というように値が固定した
文字列って意味なんだね。 ということは char literal 'a' char literal "abc" int literal 0x111 ということか。
|
- 【初心者歓迎】C/C++室 Ver.103【環境依存OK】
708 :デフォルトの名無しさん[]:2018/11/09(金) 21:40:08.63 ID:RK/u55Qe - まちがってる
char [] literal --> "abc"
|