汎用なコードが書きたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ただの屍のようだ

汎用なコードが書きたい

#1

投稿記事 by ただの屍のようだ » 7年前

『bool eof();
 この関数は、ファイルの終わりに達していれば真を返し、それ以外は偽を返します。』
教科書を読み返した限り、上のような一文だけ書かれております。

コード:

#include<iostream>
#include<fstream>
using namespace std;

int main(){
	int count=0;
	char c;
	fstream fio("text",ios::in | ios::out | ios::binary);
	if(!fio) return 1;
	fio.write("ABCD",4);
	fio.seekg(0,ios::beg);
	while(!fio.eof()){            // (c=fio.peek())!=EOFにすると出力はABCDですが、このままだとABCDDとなってしまいます
		fio.get(c);
		cout << c;
	}
	fio.close();
	return 0;
}
ついでに無限ループも体験しようと思ったのでVC++2010Expressをインストールして製品登録しましたが、
使い慣れてないせいか、HelloWorldをコンソール画面に出力するのが精一杯でした。
自分はサイトで学習するとすぐ疲れてしまいます。そこでできればVC++やVSに関する良書を買いたいと思います。
お勧めがあればぜひ教えてください。それとVC++使い慣れてないうちは”まともじゃないコード”で質問すると思うのであらかじめお詫び申し上げますよ。。。

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#2

投稿記事 by ISLe » 7年前

前にも書いた気がしますが、それで、どうしたいのでしょうか。

VC++やVSに関するお勧めの書籍を教えて欲しいというのが主旨ですかね。
入門書は買ったことがないので分かりませんが。

コード:

#include <iostream>
#include <fstream>
int main() {
	using namespace std;
    char c;
    fstream fio("text", ios::in | ios::out | ios::binary);
    if (!fio) return 1;
    fio.write("ABCD",4);
    fio.seekg(0,ios::beg);
    for (;;) {
        fio.get(c);
        if (fio.eof()) break; // eof関数を使うなら読み込み操作後
        cout << c;
    }
    cout << endl;
    fio.clear();
    fio.seekg(0,ios::beg);
    while (fio.get(c)) { // eof以外のエラーにも対応するシンプルな方法
        cout << c;
    }
    return 0;
}
VC++で通ればまともなコードというわけでもないです。

ただの屍のようだ

Re: 汎用なコードが書きたい

#3

投稿記事 by ただの屍のようだ » 7年前

コメントにあるc=fio.peek()はcount=fio.peek()の間違い
主旨は書籍探しであってます。 

ただの屍のようだ

Re: 汎用なコードが書きたい

#4

投稿記事 by ただの屍のようだ » 7年前

実を言うとcをint型にしてcharキャストでstream.get(char&)に渡したかったが、ポインタと違ってキャストするだけじゃ渡せないみたいなので
わざわざcountを作りました
コードの書き方としては、プログラミング言語Cを参考にしていたので、Cの関数を似たC++の関数にしただけです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#5

投稿記事 by softya(ソフト屋) » 7年前

VC++だけで通るコードを書いても「汎用なコードが書きたい」と趣旨からは外れるので普通にC++の書籍で良いのでは?
それともC++の書籍の情報が欲しいのでしょうか?

それとVisualStudioの操作といっても下記サイトぐらいの情報で十分でしょう。
「太田研究室 > Visual C++ 2010 Express プログラミング入門」
http://cvwww.ee.ous.ac.jp/vc10prog.html
WEBが苦手なら紙に印刷をしてください。

>自分はサイトで学習するとすぐ疲れてしまいます。そこでできればVC++やVSに関する良書を買いたいと思います。

MSDNを見れないとなると学習としては辛いですね。
書籍にしたら死ぬほどの量の情報があります。大半は書籍にもなっていません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: 汎用なコードが書きたい

#6

投稿記事 by ただの屍のようだ » 7年前

C++の書籍(もしくは学習サイト)もほしいとは思いますが、なにしろすでに持ってますからね
まだ習い始めということもあって、そのうちに知識を積み重ねれば上達していくとおもいます。
どんな壁も乗り越えてしまえば、ただの階段ですよ!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#7

投稿記事 by softya(ソフト屋) » 7年前

ただの屍のようだ さんが書きました:C++の書籍(もしくは学習サイト)もほしいとは思いますが、なにしろすでに持ってますからね
まだ習い始めということもあって、そのうちに知識を積み重ねれば上達していくとおもいます。
どんな壁も乗り越えてしまえば、ただの階段ですよ!
それなら書籍はいらないのでは?
どうも言っていることの意味がわかりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: 汎用なコードが書きたい

#8

投稿記事 by ただの屍のようだ » 7年前

最初: VC++使いこなせないから入門書がほしい
返事: VC++以前に問題があるようだ、C++の書籍がほしいのでは?インターネットのほうが情報量が多い
今: 
C++の本はすでにあるけど、お勧めがあれば読みたいと思います。
1,2日で上達するようなもんでもないし。ゆっくり学習して、いつか汎用なコードかけるようになればいいです。
それに、ここの皆さんなら奇妙なコードでも読んでもらえるようで、安心して質問できそうです。

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#9

投稿記事 by ISLe » 7年前

ただの屍のようだ さんが書きました:コードの書き方としては、プログラミング言語Cを参考にしていたので、Cの関数を似たC++の関数にしただけです。
引数なしのgetを使えば良いのでは?

コード:

#include <iostream>
#include <fstream>
int main() {
    using namespace std;
    int c;
    fstream fio("text", ios::in | ios::out | ios::binary);
    if (!fio) return 1;
    fio.write("ABCD",4);
    fio.seekg(0,ios::beg);
    while ((c = fio.get()) != EOF) {
        cout << (char)c;
    }
    cout << endl;
    return 0;
}
すでに持っているC++の書籍には載っていないのでしょうか。


わたしは知識を積み重ねるにはタイミングが重要だと思います。
そして学習するタイミングは自分で作るものです。
効率も吸収力も段違いです。
ただの屍のようだ さんが書きました:どんな壁も乗り越えてしまえば、ただの階段ですよ!
乗り越えた後に言えばカッコイイですけどね。

「そのうち乗り越えますよ。あんなのただの階段ですよ!」
って負け惜しみにしか見えませんよ。

ただの屍のようだ

Re: 汎用なコードが書きたい

#10

投稿記事 by ただの屍のようだ » 7年前

(´;ω;`)<そのうち乗り越えますよ。あんなのただの階段ですよ!
一冊の量が薄くても、数冊使えばいいです!

アバター
バグ
記事: 130
登録日時: 9年前
住所: 愛媛県
連絡を取る:

Re: 汎用なコードが書きたい

#11

投稿記事 by バグ » 7年前

結局のところ、「どの書籍がオススメですか?」と聞かれたら、「あなたは何をしたいのですか?それによって返答は変わります」としか答えようがないのが皆さんの本音だと思います。

例えば、「○○みたいなゲームをC++で作りたいのですが、オススメの書籍やサイトはありますか?」という質問でしたら、質問者の意図が分かりやすいので答える側からしても返事がしやすいのです。(正直、これでもまで漠然とした質問だとは思いますが・・・)


もっと単純にプログラムの入門書というのであれば、下記辺りかなぁ・・・好みはあるでしょうけど。


ビジュアルラーニングC言語入門

ビジュアルラーニング C++入門

C++言語クイック入門&リファレンス

ただの屍のようだ

Re: 汎用なコードが書きたい

#12

投稿記事 by ただの屍のようだ » 7年前

ただのばかだと思われたてもいいので、はっきりいいましょう。
なにが作りたいんじゃなくて、なんでも作れるようになりたいです!
OSを使いこなす。OSを読む。OSをいじってみる。OSを改良してみる。OSを作り出す。それでも目的達成の一部にすぎません。
自分の残りの時間をすべてかけても足りないぐらい、大きいな夢があっていいじゃないですか

あと、お勧めの書籍参考させてもらいます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#13

投稿記事 by softya(ソフト屋) » 7年前

>OSを使いこなす。OSを読む。OSをいじってみる。OSを改良してみる。OSを作り出す。それでも目的達成の一部にすぎません。

世の中の大半のOSはC言語で書かれています。特にオープンソースは殆どです。
なので、C++を学ばなくてもOSのソースコードは読めます。
「Amazon.co.jp: オペレーティングシステム―設計と理論およびMINIXによる実装: A.S. タネンバウム, A.S. ウットハル, 今泉 貴史, Andrew S. Tanenbaum, Albert S. Woodhull, 千輝 順子: 本」


やりたい事とやっている事がチグハグに見えます。
実践に勝る勉強はありませんよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: 汎用なコードが書きたい

#14

投稿記事 by ただの屍のようだ » 7年前

わりとあってる気がしますが。
Cはすでに学んだので、今流行りのオブジェクト指向を身につけるためにC++学んでます。
いじれるLinuxよりもいじれないけど高機能なWindowsを学習対象にしたほうがあとあといいものが作れる気がします。
結局のところ、一通り学んでUNIXにも劣る『一応動くには動くカーネル』とかできても、はっきりいって人生かけてまでやる意味ないです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#15

投稿記事 by softya(ソフト屋) » 7年前

ただの屍のようだ さんが書きました:わりとあってる気がしますが。
Cはすでに学んだので、今流行りのオブジェクト指向を身につけるためにC++学んでます。
いじれるLinuxよりもいじれないけど高機能なWindowsを学習対象にしたほうがあとあといいものが作れる気がします。
結局のところ、一通り学んでUNIXにも劣る『一応動くには動くカーネル』とかできても、はっきりいって人生かけてまでやる意味ないです
いきなり難しいモダンOSが作れる訳ありません。
ステップアップのための段階だと思うのですが、上を見すぎて足元の基礎を疎かにしてませんか?
基礎を固めないと応用はうまくいかないものです。

>はっきりいって人生かけてまでやる意味ないです
ステップアップの途中で止めちゃうつもりですか?

ちなみにWindowsのカーネルもC言語です。周辺はC++とか多くなってますが。

※ 応用試験をいきなり受けるのも、同じ傾向を感じております。

【追記】
OSのカーネルとGUIとかのシェル部分を混同しているのではないかと思ったりもします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: 汎用なコードが書きたい

#16

投稿記事 by ただの屍のようだ » 7年前

応用情報受けるのは一応受かる自信があるし、基本情報の過去問とかやさしすぎて落ちる気すらしないからです。
別に足元見てないわけではありません。
ステップはこうです:
C/C++によるWindowsアプリでWindowsの機能や特徴を覚えておきます。
Linuxに乗り換えて、LinuxのOSがわかるまで読み、そのあといじります。
Windowsの機能や働きを参考書なども使ってわかる範囲でいいので書き出します。
簡単な機能からLinuxに追加していきます。
OSを自作します。
次の課題を見つけ出します。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#17

投稿記事 by softya(ソフト屋) » 7年前

ただの屍のようだ さんが書きました:応用情報受けるのは一応受かる自信があるし、基本情報の過去問とかやさしすぎて落ちる気すらしないからです。
別に足元見てないわけではありません。
ステップはこうです:
C/C++によるWindowsアプリでWindowsの機能や特徴を覚えておきます。
Linuxに乗り換えて、LinuxのOSがわかるまで読み、そのあといじります。
Windowsの機能や働きを参考書なども使ってわかる範囲でいいので書き出します。
簡単な機能からLinuxに追加していきます。
OSを自作します。
次の課題を見つけ出します。
なんかフワフワとした目標ですが、どうやるかはご本人の自由ですが、やっぱりGUIなど外側をOSカーネルの機能だと思い込んでいる気がするんですよね。
ただ、今のLinux/Windowsレベルを一人で書けると思っているのは思い上がりだと思います。
一生掛けてもと仰っていますが、一人の人生で書けるコード量のレベルを凌駕していますよ。

【追記】
もっと書いておくと個人でOSのコア・カーネルなら可能なレベルだと思います。※ 私も書いたことないですけどね。
周辺APIやらシェルやドライバを含めた周辺となると個人で対応可能なコード量を超えてしまいます。そっちの方が必要なコードやらハードウェアの知識やら、実物のハードが必要などやることが多いですからね。なので、個人で出来るレベルで収めることは重要だと思います。オープンソースにして共同作業するならこの限りではありません。

「Mona OS developers Wiki - Mona OS developers Wiki」
http://wiki.monaos.org/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ただの屍のようだ

Re: 汎用なコードが書きたい

#18

投稿記事 by ただの屍のようだ » 7年前

情報はありがたいですが、第1ステップすら達成できてないのでずっとさきの話になります。
具体的にいうとC++、Advanced Windowsを読破するだけで今年が終わってしまいます。
アプリ作りはそれからということなので、自作OSともなればおそらく5年後でしょう。
5年後のことなど語るだけ無意味だし、とりあえず目の前のことに専念しますよ。

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#19

投稿記事 by ISLe » 7年前

ただの屍のようだ さんが書きました:結局のところ、一通り学んでUNIXにも劣る『一応動くには動くカーネル』とかできても、はっきりいって人生かけてまでやる意味ないです
研究職でもなくて一生かけて開発して得るものは無いと思いますけど。
しかもLinuxベースの劣化版ウィンドウズ(見た目だけ)では協力者も現れないのでは?

目指すべきは、一生かけてメンテナンスする必要があるくらい人気のソフトウェアを作ることじゃないんですかね。

リーナス・トーバルズは大学在学中にLinuxカーネルコアを完成させてます。
現在のLinuxではリーナスの書いたコードはカーネル全体の2%に過ぎないそうです。

beatle
記事: 1280
登録日時: 8年前
住所: 埼玉
連絡を取る:

Re: 汎用なコードが書きたい

#20

投稿記事 by beatle » 7年前

OSが作りたいなら「30日でできる!OS自作入門」とかいかがでしょう。
フロッピーから自力で起動して、マルチタスクで、ウィンドウが表示できるOSが作れます。

nil
記事: 428
登録日時: 8年前

Re: 汎用なコードが書きたい

#21

投稿記事 by nil » 7年前

横から失礼します。

>具体的にいうとC++、Advanced Windowsを読破するだけで今年が終わってしまいます。
>アプリ作りはそれからということなので、
別に書籍を読み漁った後でなければコードを書けないわけではないのですし、
むしろプログラミングの合間に参考書を読む、
また、参考書を読む合間にプログラムを書く方が効率はいい気がします。

Aをした後でなければBをしてはいけないという事はありませんし
寧ろ基礎となる知識をつけると同時に実用的なコードを書く練習にもなります。

>Cはすでに学んだので、今流行りのオブジェクト指向を身につけるためにC++学んでます。
オブジェクト指向を学びたいのならばJAVAやC#などのオブジェクト指向言語を用いたほうがよりわかりやすいかと思います。
Cとも文法の近いJAVAがお勧めです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#22

投稿記事 by softya(ソフト屋) » 7年前

ちなみにAdvanced Windowsを読んだ所でアプリが書けるようになるわけじゃないですよ。
アプリの組み方が書いてあるわけじゃないですからね。
読まれたことがありますか「Advanced Windows」?
私も持ってますが必要な所以外は読んでないです。
先に読むべきはWindwsAPIの入門書とMSDNのサイトで実際にWindwsAPIで実用アプリを作ることです。
そっちを理解していないと読んでも意味ないです。

まず、DEEPな機能を組んだことのない人には意味不明なOS用語の単語羅列です。
より深く、より濃厚にWindowsAPIの一部の機能を使いこなすための情報が書いてあるのが「Advanced Windows」です。
と言う事で、WindowsAPIを熟知した上で必要な時に使うものです。

未来のアプリを散々作りWindowsAPIを熟知した後で良いですが、OSの仕組みを知りたいなら「インサイドWindows」の方だと思います。
「日経BP書店|商品詳細 - インサイドWindows 第6版 上」
http://ec.nikkeibp.co.jp/item/books/P94700.html
非表示エリア
この非表示エリアを表示するには、登録し、ログインする必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#23

投稿記事 by ISLe » 7年前

ただの屍のようだ さんが書きました:Cはすでに学んだので、今流行りのオブジェクト指向を身につけるためにC++学んでます。
オブジェクト指向はC言語でもできます。
C++だとスマートに記述できますが。
言語を学んでも言語の使い方が分かるのが主でオブジェクト指向そのものはほとんど身に付かないと思います。

頭でっかちになってるひとから出てくる代表的なセリフのひとつですよね。

ただの屍のようだ

Re: 汎用なコードが書きたい

#24

投稿記事 by ただの屍のようだ » 7年前

あいかわらずの辛口コメントに鉄のハートは動じますん。
インサイドはWindows使いこなしてから読もうと思います。

それと今はニートでも、もともとニートというわけではないです。
Java、サーブレット、JSPによるWEBプログラミングしてました。
環境はEclipseでサーバーはTomcatで、DBはマイクロソフトのやつ(名前忘れました)を使ってあれこれやってました。
感想をいうと正直微妙ですね、あらかじめ用意された部品、用意された手順をただ覚えるだけが仕事で半年もしないうちやめました。
やめたとき、上司からは『お前がやろうとしてることはただのオ○ニーだ』とかいわれましたが、
自分はどうもその”オナ○ー”に人生かけてやる価値があると感じました、まる。(ということでオブジェクト指向についてまったく知らないというわけでもないです)

フィア
記事: 82
登録日時: 7年前

Re: 汎用なコードが書きたい

#25

投稿記事 by フィア » 7年前

え~っと途中から覗いていたのですがコメントしませんでしたが見ていて心配になったのでコメントさせていただきます。

私も大きな夢がありますから屍さんの大きな夢は応援したくあります。
#OSを使いこなす。OSを読む。OSをいじってみる。OSを改良してみる。OSを作り出す。それでも目的達成の一部にすぎません。
自分の残りの時間をすべてかけても足りないぐらい、大きいな夢があっていいじゃないですか

ですが、屍さんもプログラマーだからわかると思うのですが、それに屍さん自身が言ってる様に理解していると思っているのです。

#1,2日で上達するようなもんでもないし。ゆっくり学習して、いつか汎用なコードかけるようになればいいです。
#まだ習い始めということもあって、そのうちに知識を積み重ねれば上達していくとおもいます。

屍さんは何かの多少大きめの完成したプログラムを1個は作った事はあるのでしょうか?

作った事があるのであれば一つ一つの機能をゆっくり時間をかけて作っていき部品を作り、いくつかの部品を作ってそれを組み立ててようやく完成する物だと思うのです。

『その完成品が屍さんの大きな夢なのでしたら、どうしてひとつづつ部品を作ろうとしないの?』

その事がすっごく疑問におもいます。

私も大きな夢を持っていますが手を伸ばしても届くのかどうかわかりません。
でも、確実に今私ができる事はやろうと考えています。
そのやり方は間違っているのかもしれません。

『でも、夢は夢のままにしたくないのですよ』

私にとって屍さんは完成品は考えているのにその方向性が決まっていないように思います。

人間は寿命があるため制限時間のようなものは確かにあります。
でもその制限時間はとても長いものです。

だから、焦らなくてもいいのですよ。

もちろん、人の寿命は明日潰えるかもしれませんし、10年後費えるかもしれません。
でも死んだのならそれが自分の運命なのだと割り切るしかないですよ。

私も病気のため、屍さんのニートだから焦るという気持ちはわからなくもないです。
明日を心配しなくてはいけない気持ちはすっごくわかるんですよ。

でも、屍さんがやろうとしている事はプログラムを作る事で、それは時間をかけてゆっくり構築するもの。
だから、焦らずひとつづつ作っていくしかないじゃないですか。

屍さんは皆さんの意見を辛口だとおっしゃっていますが屍さんの事を心配している部分があるのではないかと思います。

あ、後知識をつけるのは悪くはないとは思いますが知識が抜けている事はあっても応用力や発想力しだいでプログラムはどうとでもなる場面は多いので、屍さんは考え方の柔軟性を持ってみてはいかがでしょうか?
これは屍さんの事を見て私なりのアドバイスです。
これを屍さんが辛口と捉えるのであれば申し訳ありませんね。

柔軟性があればきっと応用試験のほうも解けると思いますよ。

ただの屍のようだ

Re: 汎用なコードが書きたい

#26

投稿記事 by ただの屍のようだ » 7年前

心配してくれるのはありがたいですが。
自分は鋼のハートに、黄金の鉄の塊でできてる肉体と豆腐のメンタルがあるから全然平気ですよ。(冗談が言えるぐらい)
人生一回きりだからこそ、好きなように生きたいなだけで思われてるほど頑固な人ではないです。

フィア
記事: 82
登録日時: 7年前

Re: 汎用なコードが書きたい

#27

投稿記事 by フィア » 7年前

#自分は鋼のハートに、黄金の鉄の塊でできてる肉体と豆腐のメンタルがあるから全然平気ですよ。(冗談が言えるぐらい)

それはうらやましい限りですね

ホヅミ
記事: 110
登録日時: 9年前

Re: 汎用なコードが書きたい

#28

投稿記事 by ホヅミ » 7年前

と、とりあえず落ち着きましょう。
ココは屍さんのチラシの裏ではありませんし、雑談する分には構いませんがそういう時はタイトルに雑談トピだとわかるようにしましょう。
最初の書き込みからどんどん話がずれていってて、飽き性タイプの典型なので大体は挫折するでしょう。
そして、一度きりの人生だから別のことをやり始めるでしょう。なんせ好きなように生きてるんですから。

質問なら質問内容をはっきりさせておくこと。
雑談なら雑談だとわかるようにすること。
とりあえずフォーラムのルールを読んでから来ること。
某特大掲示板から流れ着いたのかわかりませんが、もうすこし節度を持った書き込みをしましょう。
それができないのならば、ブログなりツブヤイターなりで自分のある程度まとまった考えを書くなどした方がいいのではないでしょうか?

鉄のハートなのか鋼のハートなのか豆腐メンタルなのかよくわかりませんが平気ならあえて言わせてもらいます。
あなたには無理です。

ただの屍のようだ

Re: 汎用なコードが書きたい

#29

投稿記事 by ただの屍のようだ » 7年前

フォーラムルールに違反してあるのであれば、管理人が勝手に消してくれるから別にいいのではありませんか。
鉄のハートでも『あなたには無理』という言葉には少し動揺するようです。
たしかに、ネットというマスクをかぶった状態でのやりとりならなにを言ったって平気でしょう。
ですが、考えてみてください。もし君の兄弟、友人、もしくは親、子供が自分と同様に夢を追いかけて生きると決断したとき。
同じようなこといえますか?基本的に人をきつい言葉で批判するのは性に合わないので、やわらかい言い方で言わせてもらいます
『人の可能性を否定する前に、自分の人としての未熟さを見つめなおしたほうがいいです』

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 汎用なコードが書きたい

#30

投稿記事 by softya(ソフト屋) » 7年前

言い争いになるようなら、このトピックの書き込みを停止します。
※ それ相応の事情が無い限り削除・訂正はいたしません。 → フォーラムルールに記載。

みなさんも自重してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#31

投稿記事 by ISLe » 7年前

ただの屍のようだ さんが書きました:Java、サーブレット、JSPによるWEBプログラミングしてました。
環境はEclipseでサーバーはTomcatで、DBはマイクロソフトのやつ(名前忘れました)を使ってあれこれやってました。
感想をいうと正直微妙ですね、あらかじめ用意された部品、用意された手順をただ覚えるだけが仕事で半年もしないうちやめました。
やめたとき、上司からは『お前がやろうとしてることはただのオ○ニーだ』とかいわれましたが、
自分はどうもその”オナ○ー”に人生かけてやる価値があると感じました、まる。(ということでオブジェクト指向についてまったく知らないというわけでもないです)
世の中のオブジェクト指向の解説というのは、使うひとに対して書かれたもので、作るひとに対して書かれたものは皆無と言って良いのではないかと思います。
少なくともわたしは見たことがありません。

プログラミング言語やプラットフォームがオブジェクト指向を意識したものであろうと、ウィザードが用意した空のメソッドに断片的なバッチ処理を書き込んでいくのを、オブジェクト指向プログラミングと呼ぶのはわたしは違うと思います。

オブジェクト指向とはオブジェクトに振舞いを定義したものというのも半分しか説明できていないと思います。
半分しか理解しないまま、多くのひとは振る舞いを呼び出して処理を行うものだと考えます。

しかしそれはしかたのないことです。
世の中のプログラマのほとんどはオブジェクト指向で何かを作る必要も機会も無いのです。
ほとんどのひとにとってそれで十分なのです。

残りの半分は、オブジェクトの振る舞いで処理が進行する(ようにする)こと、です。
fstreamのget(char &)関数がオブジェクト自身の参照を返す意味を考えてみてください。

オブジェクト指向の究極はオブジェクトを評価するだけですべての処理が行われることです。


話は変わりますが、わたしは仕事のプロジェクトでも必ず自分に課題を設けます。
たいていは汎用モジュールを最低でも1つ作るといったものですが。
別に自己満足上等だと思いますよ。
相手を納得させることができるならば。


わたしは掲示板に投稿するときは質問者さん本人に向けてというよりも読むひとすべてに向けて書くように意識しています。
誘導目的で事実を突き付けることもありますが、どのような反応が返ってくるか楽しみにしているので、結果を決め付けるようなことはしませんしして欲しくないです。
#技術的な問題は別。
オブジェクト指向の話が出た時点でスレの最初のコードを引き合いに出すことを予定していたので閉鎖されたら台無しでした。

ただの屍のようだ

Re: 汎用なコードが書きたい

#32

投稿記事 by ただの屍のようだ » 7年前

要するにこういうことですか?
例:
素材:米。 オブジェクト:冷蔵庫、炊飯器、電子レンジ。
過程:米を炊飯器で炊いて、冷蔵庫に入れて、食べるときはチンする。

同じ素材を使うにしても、役割ごとにオブジェクトを作り、処理を分割する。こんな感じですか?

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#33

投稿記事 by ISLe » 7年前

ただの屍のようだ さんが書きました:要するにこういうことですか?
例:
素材:米。 オブジェクト:冷蔵庫、炊飯器、電子レンジ。
過程:米を炊飯器で炊いて、冷蔵庫に入れて、食べるときはチンする。

同じ素材を使うにしても、役割ごとにオブジェクトを作り、処理を分割する。こんな感じですか?
炊飯器で炊く『人』、冷蔵庫に入れる『人』、チンする『人』、食べる『人』。
『人』の介在が必要なのに『人』の存在が定義されていませんね。
それはオブジェクトを使役するのだと無意識に考えてしまうからです。
そして使役することがプログラミングだと無意識に考えています。

オブジェクト指向はオブジェクト自身が振る舞いを持つことですよ。

(追記)
世の中のオブジェクト指向の解説が間違っているということではないですよ。
見方はひとつではないということです。

ISLe
記事: 2648
登録日時: 9年前
連絡を取る:

Re: 汎用なコードが書きたい

#34

投稿記事 by ISLe » 7年前

コード:

    for (;;) {
        fio.get(c);
        if (fio.eof()) break;
        cout << c;
    }
こちらは、eofかどうか教えろ、ループの終了条件は『オレ』が決める、というコードです。

コード:

    while (fio.get(c)) {
        cout << c;
    }
こちらは、ループの終了条件はfioさんの振る舞いに{任せる|従う}コードです。

上の2つを比べるとオブジェクト指向の根本を理解できるのではないかと。

ライブラリの中身が何やってるか分からないと気持ち悪い、と言うひとたくさんいますよね。
『オレ』の存在が無くなることを本能的に嫌うのでしょうかね。

閉鎖

“C言語何でも質問掲示板” へ戻る