1 :
デフォルトの名無しさん:
終了
私がC++を始めたのはHP作っていて、最初はもちろんHTMLとか
CSSとか勉強してたのですがやっていくうちに凝りだして
最初はグラフィック関係PhotoShopとかIllstratorとか勉強しだして
次に掲示板を自作したくなってPerlとかCGIの勉強しはじめました。
そうこうしてる上でC++ででもCGIが動くんだって知って、
C++本格的に勉強しようと思い始めたのですが、
Hello.exeとか簡単なのから対話形式の簡単なプログラム
よく解説サイトに載ってるようなのを実行できるように
なりはじめて思ったのですが、
よく考えたらC++って結局何が出来るの?
ってのが頭をよぎりました。
そりゃいろいろプログラムって出来るんだろうけど、
果たして自分にできるのだろうか?
で、皆さんどうですか?
最終的にこんなの作ってやるみたいなのあってやってますか?
それとも比較的なんとなく覚えられたらいいなぁ〜ぐらいの
テンションでやってますか?
それとこんなの作りたいみたいなのも教えてもらえると
モチベーションあがりそうなんであったら教えてください
色んな言語を学ぶのは良いことだ。
言語毎に向き不向きがあるのは当然だ。
>そうこうしてる上でC++ででもCGIが動くんだって知って、
C/C++を先に知ってる立場からすると、むしろ
「PerlでもCGIが動くんだ」
という感想だった。
いやま、Apacheを使ってるという前提でだが(他のhttpサーバしらんから)、
標準入力と環境変数を読めて標準出力に書ける処理系だったらなんだって
CGIは組めるんだが…。
で、unix系OS出身の言語処理系でこれらの機能を持たないものはまずあるまいて。
Webプログラムから入った人にとっては、C++だろうがPerlだろうが
結果がブラウザに出るだけだから、どちらが良いのかはっきり分からないのかもしれないけど、
BASICから入った俺にとっては、初めてCを使ったときは感動したよ。
恥ずかしい話だが、「うお!ネイティブでアプリが動いてる!早いよ!」ていう感想だった。。
N88BASICというソフト上じゃなくて、MSDOS上で直接アプリが動かせるのが
うれしくてしょうがなかった。処理も圧倒的に速かったし…
かれこれ10年以上前の話だが…
そんなこともあってか今は仕事上JAVAやPHPも使ってはいるけど、
個人的にはC/C++が一番好き。ネイティブな感じがして。
おれのCの入門は例のあの三田の『入門C言語』orz
あの本でつけたおかしな知識を払い落とすのに随分苦労したよ。
いまだにトラウマになってる。
初めてプログラムに触れたのはFORTRAN77なんだけど、
実機なんて小学生に触れる時代じゃなかったんで本で読んだだけ。
その後8080アセンブラ、BASIC、Z80アセンブラ、PascalときてCにたどり着いた。
そこで三田の本。おれ頭悪いんだから、こんなひどい本を世に出さないでくださいよー。
たのんますよアスキーさん。その後この本はオーム社に移ったみたいだけど、
今でもあるのかどうか不明。
MS-DOSではCと8086アセンブラが半々くらいでした。
今はCはほとんど使わないっす。PerlやRubyやPHPやSchemeで楽々プログラミングっす。
性能が足りないなと思ったときに引掛る部分をCで補ってやるだけ。
C++はほとんど使ったことないっすね。
>>6 BASICからネイティブコードに移ったときの感動はおれも覚えてますよ。
もう何もかも別世界。速い! わけわかんない! ってねw まだCはなくて、
アセンブラの世界でしたから。
>>1 >>3 「マタリsage進行でスタート」と言いながら
自らその禁をやぶってるのはなぜ?
9 :
デフォルトの名無しさん:04/10/27 07:15:30
>>1 C++に関する質問を「C言語なら俺に聞け! Part 93」でされても困るんだが。
C++最高。
暗黙の型変換と演算子オーバーロードとtemplateと例外と
それらを組み合わせた変態ライブラリがない言語なんかうんこですよ!
C++最高!
でもプリプロセッサはいらない。もっとかっこいい仕組みに乗り換えてもいいころだと思う。
13 :
デフォルトの名無しさん:04/11/08 14:03:25
そこで Ruby ですよ
C/C++は王道過ぎて嫌だ、そんなマイナー派な漏れはREALBasicを使い始めた。
C++だって WTL とかのマイナーなライブラリがいっぱいあるぞ。
16 :
デフォルトの名無しさん:04/11/22 16:33:12
17 :
デフォルトの名無しさん:04/11/27 18:12:04
std::advanceよ、Iteratorを返せ。
何か別の値を返すのならともかく今のところ何も返していないじゃないか。
戻り値がvoidだからこそ一目で元のiteratorが進むと分かる。
>>17 ハゲ同
iterator::operator ++
みたいに自身の参照を返して欲しい
>>18 どいうこと?
>>19 template <typename In>
In std::advance(In &x)
{
return x + 1;
}
のような函数ではないことがひと目で分かるってことだろ。
ごめん、std::advanceのシグニチャ間違えた…
けど、まあ、分かってくれ。
引数を書き換える関数は、ポインタを受け取ってほしい。
これマイコーディング規約。
#include <iostream>
#include <string>
using namespace std;
class Abstract {
protected:
static string str;
public:
virtual void method() = 0x00;
};
class Specific : public Abstract {
public:
Specific() {str = "これコンパイルできる?";}
void method() {cout << str << endl;}
};
int main() {
Abstract* a = new Specific();
a->method();
delete a;
return 0;
}
25 :
東京工業大学卒ひきこもり:05/01/05 02:28:45
この書き込みはキーワード雑談により自動的に行われました
−−−−−−−−−−
東京工業大学を志望する酔狂な受験生諸君!
特に地方から上京しようとしている諸君!
俺のような東工大卒ヒキコモリを増やさない為にも今からでも遅くはない!考え直せ!
東工大などバブルの絶頂期、一流大学を出ていれば一流企業に入れた頃の遺物だ
東大卒でも無条件に一流企業に入れる時代ではなくなった現在
学歴としても中途半端な東工大に行く事に何の意味がある
大手企業は今は学歴ではなく面接で採用の可否が決まるのだ
実験等で忙しく自由な時間が少ない上にキモヲタやひきこもりの巣窟である東工大よりも
適当にレポートを書けば単位が取れ、サークルやアルバイトに勢を出せる私学のほうが遙に有利
そこで理工系ならメーカーの研究職に就けばよいだろうという意見が出てくる
しかし!東工大を出ていればメーカーに入れるなどといった考えは過去の遺物
現在は、一日平均12時間以上、月に400時間近い勉強量が求められる
大学院というものを卒業しなければ、強力なコネでもない限りはまず入れない
まさか大学院に行ってまで猛勉強をしようと思っている兵は流石にいないであろう
しかし現在の研究職はこの常軌を逸した勉強に耐え抜いた超人のみが入れる狭き門なのである
学問の探求の為に大学に行き将来は教授を目指すというのなら止めはしない、素晴らしいことだ
そして途中で方向転換して企業に就職というのは無理であるということも忘れるな
しかし就職がよさそうだから東工大に行くというのは絶対に止めろ!止めるんだ!お願いします!
こいつは私学行ってても就職出来なそうだな
27 :
デフォルトの名無しさん:05/01/05 23:34:35
ガンダムー、ガンダム
29 :
デフォルトの名無しさん:2005/06/03(金) 06:32:40
__DATE__の書式って読みにくいよな
すまんageちゃったよ
m9(^Д^)プギャー
この速度ならぬるぽ
34 :
デフォルトの名無しさん:2005/07/19(火) 00:05:07
先日 logic_error について他の人に説明したところ
「assert() でいいじゃん。」と言われました。
とっさに反論できず。
「デバッグでしか有効でないのがassert()、
リリースでも有効なのがlogic_error()。」
とも思いましたが、
リリースでlogic_errorが有効でいいのか?とも思い、
どう使い分けていいのかわからなくなってきました。
std::logic_error() と assert() の使い分けについて、
もしくはそもそも全く別物だというのでしたらその論理について、
教えて戴ければ参考にしたいと思います。
以上です。
>>34 ttp://www.microsoft.com/japan/msdn/library/ja/jpdndeepc/htm/deep061799.aspより抜粋 Rationale(論理的根拠)
標準 C ライブラリの例外メカニズムには、C++ の根本的な問題があります。
・デストラクタを認識しない。こうしたメカニズムはすべてC用にデザインされて
いるので、C++デストラクタを認識しません。特に abort、exit、longjmp は、
スタックをさかのぼっている間またはプログラムの強制終了中に破棄された
ローカル オブジェクトに対しデストラクタを呼び出しません。
上のはあくまでもmicrosoftの実装ではの話だが、assertは他の環境でも
デストラクタを呼び出さない場合の方が多いのではないか(未確認)。その場合、
std::logic_errorを投げれば正常に開放されたはずのリソースがassertでは開放
されない可能性がある。
>>34 cppllに似たような質問がありましたよ
今時の C++ のコンパイラってちゃんと言語仕様通りになったんですかね?
あと、 templete 関係でコンパイルエラーを出してしまうと死ぬほどエラーメッセージが
出るのって、あれなんとかならないんですかね?
> ちゃんと言語仕様通りになったんですかね?
まあ95%くらいはだいじょうぶですよ
> あれなんとかならないんですかね?
死ぬほど長いエラーメッセージを読む練習をするというのはどうでしょう?
C のヘッダファイルを cstdio とかで使う時、 define で定義された定数を
std::EOF とかで使えないのってちょっと変な気がするのですが、私だけでしょうか?
>>40 仕様です。
つーか、過去との柵で仕様がなかったんです。
>>38 つ#pragma warning(disable:4786)
43 :
デフォルトの名無しさん:2005/11/18(金) 07:19:49
>>43 マクロ定数にはスコープ解決演算子をつけられない。
そらまあ、マクロはnamespaceと関係ない場所にいるからねえ。
46 :
デフォルトの名無しさん:2005/11/19(土) 22:51:12
>>44 あーなるほど
C++のdefine冷遇もここまでくると害だね
>>46 プリプロセスとコンパイルは完全に別処理という建前だから。
48 :
デフォルトの名無しさん:2005/11/22(火) 12:14:53
C/C++
さぁ始めよっと
(数値地図から)200×200の数の行列?を読み込まし、iと、i+1と、j、 j+1で四点をとり、その4点の一番大きい値から小さい方へいくプログラムがつくれません
参照できるサイトありますか?わかる人いますか?ヒントください><
もう三ヶ月悩んでます、助けて
馬鹿な為ほんとプログラムわからないんです
こっちはあなたの擬似日本語がわからないんです
疑似ってつけると、わからない自分を正当化できていいですよね。
ごまかせるのは自分だけで、他人はごまかせませんが :-)
>>51 じゃあ、似非日本語が解らない。
でいい?
>その4点の一番大きい値から小さい方へいくプログラム
これで何がしたいか解る奴、回答宜しく。
>>52 > でいい?
いいえ。普通に「私は日本語がよくわからない」と書くのが正解です :-)
>>54 因縁ふっかけてないで
>その4点の一番大きい値から小さい方へいくプログラム
説明宜しく。
因縁はふっかけるものではなく、つけるものですね。
それに、問われたことに答えるのは因縁をつけることにはなりません :-)
今ほどC++が便利になったら
またCGIを記述するのに使ってもいいじゃないと思うんだが
>>58 C++をCGIに使わないのは、便利さだけが理由ではありませんね。
セキュリティかな? バッファーオーバーフローは怖いからね。
そそ、良心的なプログラマでもセキュリティホールを造ってしまうことはあるし、
まして意図的な破壊を企てる輩にコンパイラを解放するのは危険極まりない。
#公開サーバには開発環境を入れず、充分枯れたCGIだけをインストールするようにしないと。
62 :
デフォルトの名無しさん:2006/01/01(日) 23:28:23
さて2006年になった。
年末にはVC++2005に付随してC++/CLIが出たけど,
俺としてはC++ 0xのほうがよっぽど気になる。
2009年リリースを目指すとかあったけど。
vc8からしてバグだらけだからな
64 :
デフォルトの名無しさん:2006/01/02(月) 00:44:04
0xの方向性ってやっぱりライブラリをよりゴージャスにってほうこうなのかな?
個人的には、ドライバや組み込みで安心して使えるようなSTL系ライブラリがほしい。
STLのコンテナですらドライバとか書くにはゴージャス過ぎるような気がするんだよなぁ。
while (1) {
};
↑ここってセミコロンいるの?
>>66 どもです
付けても問題ないと思うけど
これからは外しておくか
if ()
while (1)
{
// ...
};
else
//...
if ()
{
while (1)
{
// ...
}
}
else
{
//...
}
70 :
デフォルトの名無しさん:2006/03/14(火) 03:46:43
}で終わる文は;は不要
って覚え方を今思いついた。
でもC++では宣言は文の一種だからこの覚え方は間違ってる。Cだと正しいけどね
>>71 そのときの } は複文の終わりと言える。
>>71 struct foo {
int bar;
int baz;
} fooz = {1, 3};
>>73 Cの場合、(C99でも)宣言は文ではないから「}で終わる文は;は不要」に当てはまらない。
しかしC++は宣言文と言う文の一種。
71もそう言っているだろ。
>>73 は宣言の例を書いたんじゃなくて
{で終わる文なのに;が必要な例をあげようとしたんじゃないの?
でも、struct foo {...} fooz = {1,3} は「式」だから「}で終わる文」ではないよ。
do{}while(hoge);
}で終わってないってのがスタンダードな突っ込み
do-while文の本体はブロックである必要はないってのが明後日の方向を向いた突っ込み
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
マルチ視ね
80 :
デフォルトの名無しさん:2006/05/12(金) 09:29:24
2006年5月12日朝...
華麗なるage。
華麗なる逆転
とある民生用ハードウェアの制御のために、プログラミングの
プの字も知らない俺が今からC++勉強します。
先ほど統合開発環境というものをDLしてきました。
いきなりちんぷんかんぷんですがめげずに頑張ります。
83 :
デフォルトの名無しさん:2006/05/27(土) 19:46:15
うれC言語。たのC言語。そして、最もはげC言語はC言語。
84 :
デフォルトの名無しさん:2006/06/10(土) 03:33:42
今日、大学の先生からレポートの課題出された
その課題の一部に例文が書いてあり、これを利用してプログラムを作りなさいと書いてあった
以下引用
#include<stdlib.h>
int a;
double x;
a=rand();
x=(double)a/32768.0;
xは、区間[0,1)の一様乱数の標本値である
関数 rand()は、呼び出す毎に異なった値(0 - 32767)を返す
ここまで。
ここの住人の方なら、この課題参照文が、どれだけ大誤りな事をしでかしてるか分かると思います。
85 :
デフォルトの名無しさん:2006/06/10(土) 03:34:14
大学ではVC++6.0使ってるけど、自分は家じゃマック使ってるから、Xcode 2.3でCommand Line UtilityのStandard Tool扱いで、いざプログラムを動かしてみるが、正常に動かない。
デバッグトレースしてみて、ひどいことをしているのが露見。
rand()が返す値は、(0 - 32767)ではありません。(0 - RAND_MAX)の値なんです。
た ま た ま、VC++シリーズのstdlib.hが、#define RAND_MAX 32767 と書いてるだけの話
VC++で組んでたら、この間違いに気づかず、後で移植した時に大わらわになりやがりますw
stdlib.hの定数なんて、プラットフォームによって、まちまちな事が多いし、こういう事をするのは大変危険で恐ろしい大誤りです。
以下自分なりに考えた正答
上の例文の、最後の行を以下の様に直す
x=(double)a/((double)RAND_MAX+1);
これで正常に動作が確認できました。
一応理系の情報通信の教授から出された課題なんですが、その道のプロである人でも、こういうことやっちゃうんですね...
ちょっとこりゃないぜと思いました
皆さんどう思います?
それがどうした。当たり前の事を今更書かれてもな。
C++のファイル拡張子って、cppとccそれにcxxなんてのもあったりするけど、これってどういうの歴史的があるのかな?
>>87 それを言うなら「歴史的経緯」だろうがカス。
>>85 0 から RAND_MAX の範囲内の int 型疑似乱数を返します。srand 関数を使って疑似乱数ジェネレータを初期化してから、rand 関数を呼び出してください
91 :
デフォルトの名無しさん:2006/06/10(土) 14:27:09
てか、情報通信工学科の教授がなにやってんだ
>>91 >>86 普段はそんなシロウト臭いの使わないからじゃネーの
馬鹿学生用にレベルを落としたら、低レベルの粘着がココに来てるだけにしかみえんな
お前以外にそんな下らんことなど気にならん。
93 :
デフォルトの名無しさん:2006/06/10(土) 14:57:05
>>92 だってそんなプログラム書いたら明らかに危険じゃん
思わず背筋凍りそうになったよ
ANSI Cでプログラム書くとき、汎用性のないプログラムを書くのは危険
学生向けにレベルを落とした書き方をしてあっただけだろ。
初心者にはRAND_MAXより数値を書いた方が意味が分かりやすいからな。
それが時代が変わって動かなくなっただけ。
例題のコードを危険とか安全とかいう目で見る方がどうかしてる。
>>92 普段からそんなシロウト臭い (プリプロセッサシンボルを使わない) ことをしているからでしょう。
>>96 92だが、知らんよそこのボケ学生の相手がどんなやつかなんかw
stdlibの乱数なんかどうでもいいだろってことだよ
てかさ、お前にとってプリプロセッサシンボルを使わないかどうかが大切なのかも知れんがナ
馬鹿らしくて射精されてんだ、もうやめろよ。低俗な話題もいいが引き時があるだろ。
自分の同類を見つけたからってむきになって擁護するなよ。
いいじゃん、雑談スレなんだから。
>>99 そいつ線形合同法の「線形」の意味を全く理解してないな。
理解してたらsrandom()の使い方がおかしいことはすぐわかるだろうに。
悔しかったのはわかるが
言い返せないのをそこまで丸出しにするなよw
屁理屈の一つくらい用意すればいいのに。
>>102 馬鹿なのがよくわかった。
これだけだと端から見て難癖つけてるだけにしか見えないから少しだけ補足しとくと
あれはそういうテストをしてるコードだ、馬鹿。
説明したフリをして実質何も言わずに逃げるのが
あまり上手くないですね、あなたw
>>104 安心しろ、補足したのはお前の為じゃない。
馬鹿に説明しても無駄だからな。
頭が可哀相だと煽りもうまくできないんだなw
>>106 お前は85,91,98なのか?
だったらもう消えたほうがいいよ
99から100に5日も空いている時点でカコワル杉
>>103 今99のサイト見てきたw
確かに100とか102は日本語も読めない恕低脳なのが良くわかった。
サイトのタイトルぐらい読もうね
>>100,102
# 一年の終りに買ったK&Rが三年になってやっとポインタの章まで読み終わった
# 四年に上がるまでにはソース打ち込んだり問題解き終わったりしたいなぁ…
`(バッククォート)ってCの構文上何か特別な意味あったっけ?
識別子名に使えるわけではないし、演算子や構文要素の一部になっていた記憶もない。
ソース文字集合に入ってないから@や$と同じ扱いじゃないかな。