1read 100read
2013年03月プログラム53: C++相談室 part99 (427) TOP カテ一覧 スレ一覧 2ch元 削除依頼
0から始める2chブラウザfor超漢字 "2ch de BTRON" (360)
VBSで便利なプログラムを作れスレ (547)
音声合成プログラムを作りる (320)
C言語をやりたいんですが (261)
プログラム関係の雑誌について (223)
「Cでプログラミングするには人生は短すぎる」か? (317)

C++相談室 part99


1 :2013/02/21 〜 最終レス :2013/03/10
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part98
http://toro.2ch.net/test/read.cgi/tech/1347964922/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.79【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1341052801/
■長いソースを貼るときはここへ。■
 http://codepad.org/
 http://ideone.com/

2 :
>>1
スレ立て乙
こちらで頼む
まあいいけど
C++相談室 part100
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part98
http://toro.2ch.net/test/read.cgi/tech/1345823164/
C++相談室 part98(実質part99)
http://toro.2ch.net/test/read.cgi/tech/1347964922/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.82【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1359924126/
■長いソースを貼るときはここへ。■
 http://codepad.org/
 http://ideone.com/

3 :
早いけど先に地鎮祭しとくのでテンプラよろしく
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後R。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

4 :
すみません早速質問です。
class Test {
public: Test getThis() { return this; }
};
のように自身を帰したい場合C++ではどのようにかくのですか?

5 :
目的次第で
class Test {
public:
 Test* getThis() { return this; }
 const Test* getThis() const { return this; }
 Test& getThisRef() { return *this; }
 const Test& getThisRef() const { return *this; }
};

6 :
そう言えば仮想関数で共変と反変ってのがあったな
それよりテンプラよろ

7 :
ここが100スレ目?

8 :
>>7
Yes

9 :
初心者は回答するな

10 :
>>9
あなたjavaスレにもいるでしょ?毎日張り付いてご苦労様です。

11 :
>>10
Javaスレなんかいないよ
Javaは10年前にかじっただけだから全く分からないし
C++メインで使ってるからこのスレは張り付いてというか一応毎晩チェックしてる
これも張り付くっていうのかな?
まあどっちでもいいや

12 :
相手が毎日張り付いてるのを確認できるのは同類だけしかいないだろうにな

13 :
自分スーパーハッカーなので誰が張り付いてるか張り付いていなかくらい寝て起きる生活と同じように取得できますんで。

14 :
無駄口叩くな

15 :
新スレ早々荒れ模様

16 :
たしか削除人は、IPアドレスがみえるそうだ

17 :
またseikyou.ne.jp大暴れなのか

18 :
ちょっと荒れてしまったようですみません。一応謝っておきます。
お酒を飲んでいたのと、C++がJavaのようにかけないのでイライラしてしまいました。

19 :
初心者は回答するな

20 :
別言語で同じように書けると思っている方がおかしい

21 :
void func() {
if (i == 0) return;
i++;
}

void func() {
if (i == 0) {
} else {
i++;
}
ではどちらが好きですか?

22 :
俺の原則はソースの行数(文字数)を減らすこと
バグの数は行数に比例する
てか、その下のやつ{}が合ってないし

23 :
行数を減らす手段にカッコの位置を使うってのは斬新だな。
関数1つあたりの機能を正しく分割できていれば行数など
ふくれあがるわけないんだが。

24 :
上は気持ち悪い
1行だろうが30行だろうが下で統一したい

25 :
でもその場合なら
void func(){
if(i!=0){
i++
}
}
こう書くと思うな

26 :
>>21
上は、最初に条件付けて関数を実行する状況を事前に制限する意図があるときに使う
下は、純粋に条件分岐する場合に使う
意図次第かと
i == 0 がいいか i != 0 がいいかも意図次第だな

27 :
>>26
>上は、最初に条件付けて関数を実行する状況を事前に制限する意図があるときに使う
だね、俺もそうする。
ただ、その場合でも
void func(){
  if(i == 0){
    return;
  }
  i++;
}
だな。

28 :
俺はこうだな
void func()
{
  if (i == 0) { return; }
  i++;
}

29 :
空の{}入れてelseとか気持ち悪い

30 :
そういう時は俺は空の { } の中にコメントを書くね

31 :
途中returnを異様に避けようとする人いるよね

32 :
必要なら途中でreturnしてもいいけど、このコードは普通に != 使うのが素直

33 :
>>31
MISRA とかでも禁止されていたりするしね。
>>32
常にそうだと思うなら、ちょっと頭固すぎ。

34 :
void func()
{
if (i != 0) i++;
}
これが一番わかりやすいじゃん
本質的に一行のコードなのになんでreturnとか出てくるの

35 :
質問の意図を解さない頭の悪い回答が出始めてきたな・・・

36 :
初心者は回答するな
と貼り付ける人の気持ちも分からんでも無いな

37 :
どっちが好きかって聞いてるだけだからな
実用性とかそんなもの聞いてないんだよ

38 :
>>36
それとこれとは違う気がするが・・・

39 :
コメントとコードが近い表現になるように条件式を書いた方が良い

40 :
>>33
MISRAなんてものがコーディング規約に含まれている会社の人はご愁傷様としか言いようがない

41 :
条件式にコメントを合わせるのではなく
コメントに条件式を合わせる
これでコードが理解しやすくなる
そのためなら空のifがあってもいいけど
コードの書き忘れと区別できるようなコメントはあった方がいい

42 :
初心者並の頭しかないくせに自覚のないゴミも回答するな







そう、今自分のことじゃないと思ったお前だよお前

43 :
>>22 だけど、本当はこうだった。
void func() {
if (i == 0) return;
i++;
}

void func() {
if (i == 0) {
return;
} else {
i++;
}
}
だったわ。すR。

44 :
やっぱ単なる好みの質問じゃんw

45 :
if-else の一方だけで return; というのは個人的にはあまり良くないと思う

46 :
動けばなんでもいい

47 :
>>42
> そう、今自分のことじゃないと思ったお前だよお前
お前のことだと思った俺はどうすりゃいい? (w

48 :
>>43
ガード条件のつもりなのか、そうでないのかをはっきりしろよ

49 :
りったんしかないのならif (i != 0) ++i;でまろやかに行くよね

50 :
それだとRがムズムズするからオレは if (i==0);else ++i; かな

51 :
R は形容詞だよ

52 :
英語圏でも普通に名詞的に使われてるだろ
俺は使わないけど

53 :
anus っていうんだよ

54 :
アヌスの鏡?w
えーと、returnの後には基本、elseは置かない習慣だから、
if (i == 0) return;
++i;
だな。
elseを書きたい場合はその前後をイーブンにしたいから、
if (i == 0) {
return;
} else {
++i;
return;
}
とするかも。
まぁ、その場合は、
if (i == 0) {
} else {
++i;
}
return;
だろうな。

55 :
>>40
MISRA が規約に含まれてる会社って車業界だから、
どっちかって言うとご愁傷様とか言われるのはお前や
俺たちじゃね? (w

56 :
>>55
いきなり自分の価値観を語りだすなよ

57 :
iが規定値の時に触るなら
if (i != 0) ++i;
iが想定の範囲内から出ることもあるニュアンスを含めるなら
if (i == 0) return; ++i;
iの範囲によって2種の異なる処理を行うなら
if (i == 0) return; else ++i;

58 :
途中returnがだめなら
throwなんてもっとだめなのか

59 :
ニュアンスなんてどうでもいいからコメント書けよ
コードで伝えようとするのは危険

60 :
コメント書くのは前提だろ

61 :
こういう無理やり1行にしてみましたみたいなコード嫌い

62 :
>>61
個人的には ; は1行に2つ以上あると気になるわ(ただしfor文を除く)

63 :
普通はそう教育される

64 :
そこは井手が勝手に直してくれるでしょ?w

65 :
井出らっきょのことね

66 :
コメントは最小限にして、それでも分かりやすいコードにして欲しい
コメント読むにはコード読むのと同等以上のエネルギーが必要

67 :
日本人なら日本語マスターしてこい

68 :
メンテされていないコメントほど害悪なものは無い

69 :
メンテされてないコードの方が害悪だと思う

70 :
>>67
えっ?コメント日本語で書いてるの?ってのは冗談として
自然言語はプログラミング言語ほど最適化されていないし、曖昧な点が多いから

71 :
>>69
コメントはメンテしなくても
書いてあるコードの通りに動くからタチが悪いだろ

72 :
>>56
価値観?
世間の動向とか興味ない人なの?

73 :
>>72
人生相談がしたいならスレ違い

74 :
すみません。うんkに毛が生えたレベルの質問なのですが、
int main()
{
return 0;
}
のreturn 0;の必要性がイマイチわからないです。あるサイトではこれがないとコパイル通らないそうですが、通りました。
例えば例外発生したときにそこでプログラムがとまってメモリを食っちゃうのを阻止する感じでしょうか

75 :
C++ではなくてもコンパイルは通ります

76 :
それじゃ必要になったら書けばいい
必要ないなら書く必要はない

77 :
>>74 main 関数が int を返すって宣言してるから。

78 :
なるほど。すみません続けて質問なのですが
using namespace std;
はできるだけ書かずにstd::cout, std::endlのように書いていったほうが良いと考えておkですか?
スタティックなインポート?に恐怖を感じます

79 :
>>75
Cでも最新の仕様なら要らない
最新の仕様に対応していればだけど

80 :
>>78
using namespace std; はなるべく書かない方がいい
解説書やら何かやらではスペースやら説明やらの都合上よく使われるが
こういうのなら悪くはない
namespace AAA {
using std::cout;
using std::endl;
int main() {
 cout << "aaa" << endl;
}
} // namespace AAA

81 :
ヘッダにさえ書かなきゃどうでもいい

82 :
>>80
そんな風にmain()関数を囲い込む方法もあるんですね。今自分で、
AAA::main();
とよんでみたら確かに通りました。
ありがとうございます。

83 :
あ、すまん
main は名前空間に含んじゃいけないな
こういうことで
namespace AAA {
using std::cout;
using std::endl;
void foo() {
 cout << "aaa" << endl;
}
} // namespace AAA
int main() {
 AAA::foo();
}

84 :
設計上よくないということですか?

85 :
文法上まずい
mainはグローバル名前空間内で定義する必要がある
using namespace std; は色々問題があるけど
グローバルでない名前空間内で std::cout, std::endl などを個別で using するのは割と安全
というものの例を上げようとしたら
間違って main も名前空間内に入れてしまっただけ

86 :
ふと思ったんだけど、なんで return で制御返しちゃうんだろ。
return だからって、制御返すのと戻り値をまじちゃってるよね。
制御構文として return を書かないなら綺麗になるかなかな?

87 :
もうちょっと日本語で話してくれ

88 :
>>73
価値観とか人生相談とか…
要するに論理的な話はできないと言うことね、了解した。

89 :
>>58
途中returnが駄目で途中breakがOKな理由がよくわからないね、あれだ、ダブルスタンダードってやつか?

90 :
>>59-60
コメントって怏々にしてメンテがゆきとどかず、実体の真逆を記述していることもおおいよね
コメントを頼りにするのは馬鹿

91 :
もちろんコード前提だろ馬鹿

92 :
>>88
同一人物だと思い込んだ理由はなんだろね

93 :
呼んだ関数は、いつかは(あれば)戻り値を伴って戻ってくる訳で、
そのときに戻り値が設定されてればいいわけで、
戻り値返すついでに制御も返しちゃいけないと思うんです。
スレちだけど、言い出しっぺなので。
>>21 の質問は、何らかの数が 0 なら処理しなくて良い or するなって意味で、
0 で return させたのです。
でも 0 で無いなら処理しろにして、0の場合でもそのまま関数抜けていただいたほうが、
御社にとってもとかったのではないかと。思った次第。

94 :
皆さんC++学ぶ上で何をしましたか。
やってて面白い分野が見つかればよいのですが。C++ならではのAPIとかあれば教えてください。

95 :
ゲーム作る

96 :
科学技術計算

97 :
>>95
自分もそれを第一に考えたのですがウィンドウ作る所でいやになりました。
もっとC++言語としてまとまったAPIdocumentがあればよいのにないですよね?

98 :
Cライクで書かれたサンプルプログラムをC++のSTLとクラス使って書きなおす

99 :
C++にウィンドウなんて概念はないからな

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
VBSで便利なプログラムを作れスレ (547)
スレを勃てるまでもないC/C++の質問はここで 21 (237)
C#,C#の宿題片付けます。 (796)
データベースプログラミング全般スレ (380)
C言語をやりたいんですが (261)
【C++】マイナーGUIツールキット (673)
--log9.info------------------
銀装騎攻オーディアン 20世紀最後の名作 (781)
KURAU Phantom Memory Part27 (451)
Re:キューティーハニー 二変化目【旧新F】 (867)
アニメデジモンシリーズで最高を決めるスレ (832)
ヴァンドレッド総合スレ7 (762)
はれときどきぶた (667)
ミドリ達はいつも一緒なんれす 天使のしっぽ42 (232)
☆ 劇場版 花咲くいろは HOME SWEET HOME 1泊目  (211)
【劇場版】とある魔術の禁書目録【PART7】 (398)
映画ドラえもんのび太のひみつ道具博物館 2 (266)
GOTHICMADE ゴティックメード-花の詩女-11 (319)
プリキュアシリーズ劇場版総合79 (815)
劇場版ドラゴンボールZ総合10【神と神】 (242)
【興行】劇場公開アニメを語ろう143回目【収入】 (1001)
おおかみこどもの雨と雪 25 (1001)
【劇場版】とある魔術の禁書目録【PART6】 (1001)
--log55.com------------------
【KONAMI】ラブプラスEVERY 29日目
【アズレン】アズールレーン Part4509
【FEH】ファイアーエムブレム ヒーローズ無課金専用スレPart246
【アリスギア】アリス・ギア・アイギス Part1105
Fate/Grand Order まったりスレ5433
【アズレン】アズールレーン Part4510
【デレステ】スターライトステージ★11191
【FEH】ファイアーエムブレムヒーローズpart5191