C++使って何するの?
■ このスレッドは過去ログ倉庫に格納されています
抽象度を確保しつつ、低層まで手を出したい分野かな…3Dゲームとかその辺 【空を飛ぶプログラム】
1.背中に空を飛ぶための羽をつけなさい。
2.空中に浮かぶまで羽を一生懸命羽ばたかせなさい。
日本語で書くとこんな感じ。 // C++で足し算をするプログラム。
#include <iostream>
using namespace std;
int main(void)
{
int a, b, c;
cout << "整数Aを入力しなさい: ";
cin >> a;
cout << "整数Bを入力しなさい: ";
cin >> b;
c = a + b;
cout << "A+Bは" << c << "です。" << endl;
return 0;
} >>8のテキストを拡張子「.cpp」で保存してコンパイル&リンクすれば
足し算をするプログラムが出来上がり。 " "で囲った部分は、リテラル文字列と言います。
coutは標準出力を行うストリームです。
cinは標準入力を行うストリームです。
mainはプログラムで最初に実行される関数です。 C++で最も設計がクソな所は、iostreamだな。
cout << "hoge"
その証拠に、この部分の設計をパクった後続言語は一つも無い。 C++のプログラムをコンパイル&リンクするためにはパソコンに
コンパイラという道具をインストールする必要があります。
初心者はVisual C++ Expressをインストールしましょう。 C++でできることは、パソコンでできることの全てです。 >>1
一つ、顧客の要望に応え、信頼と実績を築きます。
一つ、バグの無いシステム作りを通して、社会の生産性に貢献します。 C++はなんでもできるけどC++でなんでも作るには人生は短か過ぎる。 >>12
TDM GCC4.8.1 + Code::Blocks13.12 の方がいい。日本語化のlocaleも
テトラさんがVectorに出してるし。 Download codeblocks-13.12mingw-setup-TDM-GCC-481.exe (105.1 MB) 他の言語の値渡しと参照渡しのあいまいな感じが受け付けない人用 他の高級言語は中でなにやっているのかわからないからな あーごめん
自分でも聞きたいことがまとまってなかった
今まとまったんだけど、
具体的に活用できそうなC++のプログラムってどんなものがあるかなって
足し算とかの計算するだけのプログラムは今要らないし、
自分にどんなものが必要かって考えても呆然としてる状況だから
どんなものがあるかを知って、それで作りたいものがあったらやってみたいなって 何があるか教えたところで、おまえには作れないからc++は触るな 純粋なC++でできることは限られてるが、APIやライブラリを使うことで、ウィンドウを開いたり、OSを操作できるようになる。
できることを列挙するなら、ツール作成、スクリーンセーバー、データベース問い合わせ、ソケット通信、
画像の表示と編集、外部プログラム実行、パズル自動作成、パズルのソルバー、音声の加工と再生、ゲーム制作、
人工知能作成、デスクトップマスコット、インターネットへのアクセス、ハッキングなど。 >>29
おおありがとう
>>28,30
やってみなきゃわからないと思うの(´・ω・`)
まだ僕のことなんにも知らないでしょ?なのに知った口聞くなクソッタレ! >>30
> それらをc++で作るのは、大変なだけだから触るな
大変?
お前に能力ないだけじゃね? (w .netがネイティブ化されるそうだから、C++よりもC#を勉強した方がいいかもしれない >>33
C#をやってて、C++(というかCUI)って何するんだろうって思った 組み込みアプリはc++で書いてる。
パソコンはUIを持たないサービスやミドルウエアもc++で書いてる。
パソコンのUIあるアプリはc#。
バイナリ/bit演算が必要なソフトはc++/cで書くのがしっくりくるね (広義の)アクションゲームプログラミング。
ある程度の抽象度が欲しいにも関わらず、1/60秒で一通りの処理を終えなきゃならない。
メモリやリソースの確保/解放などは遅くても良いタイミングに全部任せたい。 まじか
C++を使ってるプログラムってどんなものがあるん
細かい作業じゃなくて、ワードとかエクセルとかそんな感じに言うと てかC++ってどういう風に使っていくの?
VisualStudioでWindowsFormApplicationとかいうの選んだら、C#で書くしかなくない?
そういうのでC++を組み込んでいくやり方を教えてください
なんか根本から間違ってる気もするから、そうだったらできればやさしく訂正お願いします そもそもVisualStudioがアプリケーションを作る唯一の方法ではないし、
WindowsFormApplicationを選ばなくてもGUIアプリケーションを書くことはできる。
勧めるわけではないけどな。
サクラエディタなんかC++で書いてあるな >>31
> 31 名前:デフォルトの名無しさん [sage]: 2014/04/03(木) 14:25:41.29 ID:FwQPO4he (2)
> >>29
> おおありがとう
> >>28,30
> やってみなきゃわからないと思うの(´・ω・`)
> まだ僕のことなんにも知らないでしょ?なのに知った口聞くなクソッタレ!
こいつクソですね・・・何様やねん
あほらし…やめたらプログラムとか? CはABCの、C
C++とはスペシャルサービスでボインのお姉さんがうふふ・・・ C++には天才を惹き付ける何かがあると思います。
思いました。 >>40
Win32API(Cの関数)をつかって、ウィンドウを生成して設定する方法と、
Cの関数を直接つかわないで、ライブラリを利用して
C++のnewをつかってウィンドウを構築する方法があります。
内部でなにをやってるのか、どうやったらWindowsのアプリケーションがつくれるのか
どうやったら、ライブラリがつくれるのか
きになるひとは、C/C++
C++Builderは、フォームベースのアプリケーションを作成できます。 >>45 「C++のnewをつかってウィンドウを構築する」
newをつかわないライブラリもあります Objective-Cの開発者たちが、俺たちの方の目的は"プログラムのIC"を作ることだったけど
ストラウストラップがC++でやりたかったのはプログラムのトランジスタとか抵抗を作ることだから…って言ってた。 てことは、Cはシリコンとか炭素だったんだ。
そうだったんだ。
ていうか炭素だよね。 stream.write(x).write(y),write(z) のシンタックスシュガーと思えば順当なんだけど、c++のformat関数が標準で無いのが元凶でしょ >>11
Rubyは、文字列どうしなら<<がつかえる
(s = foo) << bar << baz
ファイルには、file.print foo, bar, baz >>52
Rubyは普通、変数埋め込み使うから。
puts "hoge is #{hoge}"
あと、最初から sprintf() 有るし。 C++でなにかするんじゃないの?
お姉さんが++が2つもあるスペシャルサービスをしてくれるの。
さぁーー、いらっしゃい。坊や C++でなにかするんじゃないの?
↓
C++でなにかするんじゃないの❤ 変数宣言の自由度が高いCとしてしか使ってないな
C++特有の機能使うとトラブった時にダンプから追うのが面倒になるから Rubyでobsoleteはあっても、「普通は〜」とか無いんだよ
幅広いユーザーが好きな記法使えるようにバリエーション増やされてる言語
a = "xxx"
b = "rrr"
puts "ccc %s %s" % [ a , b ] プログラミングも突き詰めれば、政治と宗教
C++の使い方?
政治利用と、宗教利用だ
例えば、敵国のIT企業にC++使わせまくってリターンしにくい場所まで浸透させてから
C#.NET発表するとかさ
C#.NETよりもC++/CLIを便利なものにしまくって、その挙句に
次のD#発表しちゃうとか、そんな感じで今日も利用されてる 最初から世界はcとschemeだけで良かった。
今、その世界に近い現実解はc++とjavascriptで、現存する実装はQtだけ。
これがObjective-CとRubyならもっと良かったが、もはや世界は覆らない。 Browserが世界を壊した。BrowserはOSの機能として取り込まれるべきだったが、
Microsoftの強欲にとってBrowser的なものがOSから独立してしまった。
FlashやJavaを求めていたのかもしれないが、FlashやJavaはBrowserになれなかった。
本当に必要だったものはSmalltalk上に構築すべきだったが、
Microsoftとビョーンスポスポのアホのせいで世界は本当に複雑になってしまった。 プログラム作成の手間の3割以上を、メモリの解放に割かなければならない欠陥言語。 スマートポインタを知らないプログラマーの屑
なお、2chでは一般的なユーザーの模様 すると今度は開発時間の3割をコンパイル時間に割かなければならない欠陥言語。 むかしBASICが好きだったのは息抜きにRUN打って
できてるとこまで動作させて遊べるからだったのを思い出した。 まともな設計が出来ないやつが一番触っちゃいけない言語
メモリの破棄がどうのこうのほざいとている馬鹿とか論外 >>70
オマエはC++でメモリを解放しない馬鹿なのか? 破棄されるのはオブジェクトでメモリは開放されるんでないか メモリの解放にアタマ使うくらい設計に慣れてない馬鹿が使うとデススパイラルに陥る メモリの解放レベルの設計まともに組めないで右往左往している馬鹿がまともにC++なんか使えるわけないからやめておけよ
基本中の基本だろ 大昔ならともかく
今のC++で素人がnew+生ポインタ使うとか
その時点で間違っている。
でも、いまだに2次元配列っぽいもの作るのにわざわざ
newを多段に使うような素人が多いのは、
参考にしている教材が間違っているのか? あきらかにポインタの仕組み理解してないだろみたいなヤツが参考書書いてたりするからな
日本人が書いたC言語の解説書ポインタ意味わかんないこと書いてあって一冊破り棄てたことあるよ
そのあとカーニハン&リッチー買い直したときにまずはじめにコイツにぶちあたっていれば2千円
を無駄にせずに済んだと思い直した糞みたいな思い出がジワジワと(ry 設計がキチンとしていれば、メモリリークは発生しないって言っているのか、ここの人たちは?
設計キチンとしてないとダメだなんてみんなわかっているに決まっている。
コーディング規約決めて、ボインタの扱いについて規約決めて、グローバル変数について規約決めて、設計書のレビュー重ねて、
それでもワケのわからない挙動やメモリリークが発生して、デバッグしてもわからなくて、軽微だったら、そのまま納品しちゃいましょうってのが、c++開発の日常。
よくよく調べると、手抜きするため、規約スレスレってか規約違反の変なことやっているバカのせいだったりするけど、そういう事が出来ちゃうせいで、開発効率が大幅に落ちるのは、欠陥とは言わないのか?
根本的な問題を、人の能力や作法に置き換えて考えるのは、それこそ大昔のやり方だよ。 GCデフォルトな言語でメモリリークは起こらなくても
dispose忘れてリソース食いつぶすみたいなトラブルは
馬鹿には幾らでも起こせるからな。 メモリーのリークは検出できるけど、リソースのリークはなかなか難しいよね!
UNIXの優れた点として良く言われるのが、プロセスを閉じると使用していたディスクリプタも
閉じることだけど、それが物語ってるよね、Windowsの素晴らしさを! そもそもGC万能でもないしな
javaでもc#でもlistに対してnewし続けてまわしてたりすりゃ実質リーク状態起こすし、テストや解析ツールで発見しやすくなるのは極論すりゃcだって変わらん
そんな半可通の俺が、敢えてここでObjective-Cに於けるARC最強説を唱えてみたいと思う
さあ叩け
もちろんc/c++とのやりとりが発生する度に日々地獄はみているからしてアレがナニではあるが >>83
ナカマ!ナカマ!
「extern は要らない子!(C限定)」 >>72
キミもスマートポインタやそういった設計を知らないで
>>65 みたいなことを言っている人!? >>86
2ちゃんというか世間の人間はそんな奴ばっかや!
大工に例えたら、ノミとかトンカチを使ったことないヤツに木の削り方をドヤ顔で指摘されとる
こっちは仕事でわからん奴に説明ばっかしとる・・・ C++のプロジェクトに参加するときは
そういう人がいないことを祈る。。。
>>39 に関しては
mscoree.dll (.netのランタイム) が読み込まれていなくて
msvcp○○.dll (Visual C++のランタイム) が読み込まれてたら
Visual C++で作ったプログラム (のはず) なので
Word、Excel、IEなどのMS製品以外にも
FirefoxやAdobe Readerその他殆どのアプリが
C++で書かれているっぽい。
C#とかJavaは逆コンパイルも容易だし
サーバサイド以外での商用アプリとかでは
ほとんど使われてないんじゃないかな。
※.netだとDotfuscatorとかの難読化ツールあるけどね >>88
商用でも普通に使われるは
むしろ開発効率の悪いC++をあえて使う理由とは >>88
>msvcp○○.dll (Visual C++のランタイム) が読み込まれてたら
>Visual C++で作ったプログラム (のはず) なので
mingw‥‥‥ >>91
mingwを含めIntel、Borland、Digital Marsのコンパイラとかいろいろあるのは分かるけど
それらで生成したプログラムはどこを見たらC++で書いたか分かる? >>93
情報ありがとうございますm(_ _)m
でもこれgccでリリースビルドしてないもの限定だから
製品で出てるやつはわからないね C++は、他の言語なら一部C言語で書いたりするところを
C++自身でそのまま完結させられちゃうところが利点なんよね
だから至るところで高速化したり低レイヤを扱ったりしてて、かつ規模が大きめなときだろうか…
>>88 で言えばFirefoxはGecko部分があり、Adobeは二次元をGPUで処理させとるからかな? つまりC++は他人に自分の知的財産をコピーされないところが一番の利点ってことでFA? >>95
利点であり落とし穴
スクリプト言語でやってもボトルネックにはならない箇所まで
C++でノタノタ書いてるのはアホというか
つうか殆どのアプリで
スクリプト言語にC/C++等を付けたすで完結するのに
C/C++にスクリプト言語を付けたすがデフォな奴は時代に遅れてると思う 啓発テンプレ:C/C++で作られているもの一覧
■ OS分野
- OS(Windows、Linux、Mac(カーネル以外はObjective-C))
- ドライバ
- OSの基本コマンド群(ls、find、grep他多数)
- エディタ(vim、Emacs、Sublime Text、即ち現在のメジャーエディタすべて)
■ ウェブ分野
- ブラウザ(Chrome、Firefox、IE、Safari、即ち現在のメジャーブラウザすべて)
- ウェブサーバ(Apache、nginx等)
- データベース(MySQL、PostgreSQL、MongoDB等)
- JavaScript VM(V8、SpiderMonkey、JavaScriptCore、即ち現在のメジャー実装すべて)
- 多くのプログラム言語(PHP、Python、Perl、Java他多数)
■ ゲーム分野
- 家庭用ゲーム機およびPCの商用ゲームソフトのほぼすべて
- ゲームエンジン(Unity、Unreal Engine、CryEngine他多数)
■ 組み込み分野
- 組み込みソフトウェアのほぼすべて
- 制御ソフトウェア、信号処理ソフトウェア、ドライバ等
C/C++はもう不要だ、レガシーな言語だ、書きたくないという人も多いでしょう。
が、C/C++を捨てると、貴方は最早こうした重要なソフトウェア群や
ハイパフォーマンスソフトウェア群の開発に関わることができません。
特に、JavaScriptを書いてモダン気取りのウェブ系の連中に忠告したいのですが、
上の一覧を見ても分かるように、ウェブの基盤はほぼすべてC/C++で作られています。
C/C++を書かない、読めない、使えないと宣言することで、
自分が低レイヤに関われない二流のエンジニアだとアピールしていることになります。
気をつけましょう。 ドワンゴの会長が、C++使えないプログラマは本物のプログラマじゃない的なことをコメントしていて
そういう認識なのかと嘆いていたウェブ屋がいたが、
ぶ っ ち ゃ け ド ワ ン ゴ 会 長 が 正 し い。 問題。これらのソフトウェアがなぜC/C++で書かれているのか答えなさい。
これプログラマの面接の質問によくね?
せめて3つから5つは挙げて欲しいね。
歴史的経緯で使われているだけ(=単にレガシーだから)などと答える馬鹿は
たぶん全員落とすわ。 ・これからはオブジェクト指向だよ!って風潮に流されて
・当時のパソコンでなんとか動くまがい物のオブジェクト指向のC++をつかまされて
・あとはそれで作っちゃったからそれでメンテさせ続けられてる。
Windowsのような巨大プロジェクトはC++のオブジェクト指向の不完全さゆえ
巨大になるにつれ開発に支障をきたし実際プロジェクトが頓挫しまくったことで
「本物のオブジェクト指向言語」への言語入れ替えが火急の事態として急がれているが
作ってしまったものの大きさゆえいまだに有効な置き換えができていない。 なんでコマンドはCで書かれてるの?
組み込みみたいな場合を除けば、スクリプトで組んだ方が速度という不利を考えても安全性がまさる気がするが >>102
> C++のオブジェクト指向の不完全
ひとつでも指摘してみ WEBブラウザ含めメジャーなアプリは殆ど全てC++で書かれている
そういう仕事に縁の無いドカタのためにJavaやC#があるんだから無理する必要ない >>105
オブジェクト指向の根幹の一部をなすメッセージ/メソッドの不備
それに伴うクラスの役割分離の不明瞭性、プログラマから見た時のクラス動作内容の見通しの悪さ
加えてそういった筋の通ったカプセル化インターフェイス思想の無さから
次から次へと追加された複雑な言語仕様。プログラムの可読性の更なる悪化。
要するに言語名そのまんまC+1以上のものになれなかった過渡期の言語。 >>107
全然具体的じゃないね
> オブジェクト指向の根幹の一部をなすメッセージ/メソッドの不備
何が不備なのか説明してみ >>107
>筋の通ったカプセル化インターフェイス思想の無さ
「筋の通ったカプセル化インターフェイス思想」とは? >>109
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html Cでメモリリークを起こさない設計をするのは相当な手間だけど
C++なら最初の設計ミスらない限りメモリリークはほとんど考えなくてよくなるだろ
小規模のを適当に組んでぱっと動かしたいだけなら.NET系のとかのほうが一瞬で組めて考えることも少なくて楽
大規模でしかも要素要素の関係が複雑なものになると、部分部分をきっちり動かしたくなる分C++のほうが最終的に楽な感じ
要素間のつながりが単純なら別にC#とかでも全然いいけど >>111
念のため聞いとくけど、ジョークであることは理解してるよね? まあ信じててもいいとは思うよ、俺には関係ないし (w モノホンのインタビュー集「言語設計者たちが考えること」で
ストラウストラップさんはまだ「オーバーヘッドがー」みたいなこと言ってて
ダメだこの人速くなんとかしなくちゃとリアルで思ったりはした。
あと、他の言語設計者からはフルボッコ ダイナミックキャストの型チェック部分だけだろ
デバッグ時にテスト走行させるときくらいしか使わないけどな リリースビルド時にも型情報に頼るような設計しているなら
ソース設計自体を見直した方がいいだろうと思われる はいはい、自分が使いこなせない機能は糞だと言いたいお年頃か 正直、C/C++よりJavaやC#の方が難しい。特に今のC++は高級言語を理解していないと最新のコードがかけなくなってくる。 こんな短い文章でも意味わからんこと書けるんだな (w 他人ならスクリプト言語で作るかもしれない一時プログラムをC++で作ることが多いが、これから
スクリプト言語を勉強して、その言語に変更したほうが迅速に作れるようになんの?
あんまりそうは思わんが。 >>121
ラムダ式のことか?あれば lisp/scheme 由来だよ >>124
既に大量の機能を詰め込んでいるコードを使い回して色んな一時プログラムを作るとかならともかく
そうでなければ、大概のスクリプト言語はそれぞれの用途に特化して
言語仕様から組み込みのライブラリまで作り込んであるからなー
…と言うか、スクリプト言語の勉強が大変だと思っていない?
本当に今の肥大化したC++が解っているのであれば、大概のスクリプト言語は
その応用で理解できるようになると思うぞ C++が分かればhaskellとかそういう言語を除いて一瞬で理解できる
っていうか勉強するまでもなく使えるだろ 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
2OODD ■ このスレッドは過去ログ倉庫に格納されています