SlideShare a Scribd company logo
Enviar búsqueda
Cargar
Iniciar sesión
Registrarse
C++入門?
Denunciar
tsudaa
Seguir
5 de Apr de 2014
•
0 recomendaciones
•
3,571 vistas
1
de
32
C++入門?
5 de Apr de 2014
•
0 recomendaciones
•
3,571 vistas
Descargar ahora
Descargar para leer sin conexión
Denunciar
Software
昔からC++ の入門書に違和感があったので、ちょっとそれについてまとめてみました
tsudaa
Seguir
Recomendados
競技プログラミングのためのC++入門
natrium11321
32.9K vistas
•
63 diapositivas
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
18.1K vistas
•
29 diapositivas
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
10.9K vistas
•
145 diapositivas
Javaとかc#とか最近の言語使いのためのc++入門
potimarimo
7.4K vistas
•
46 diapositivas
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
13.1K vistas
•
133 diapositivas
組み込みでこそC++を使う10の理由
kikairoya
26.9K vistas
•
32 diapositivas
Más contenido relacionado
La actualidad más candente
C++0x総復習
道化師 堂華
4.9K vistas
•
170 diapositivas
Visual C++で使えるC++11
nekko1119
36.8K vistas
•
96 diapositivas
More C++11
京大 マイコンクラブ
13.9K vistas
•
57 diapositivas
Emcjp item21
MITSUNARI Shigeo
2.3K vistas
•
12 diapositivas
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
14.2K vistas
•
31 diapositivas
エラーハンドリング
道化師 堂華
2.8K vistas
•
58 diapositivas
La actualidad más candente
(20)
C++0x総復習
道化師 堂華
•
4.9K vistas
Visual C++で使えるC++11
nekko1119
•
36.8K vistas
More C++11
京大 マイコンクラブ
•
13.9K vistas
Emcjp item21
MITSUNARI Shigeo
•
2.3K vistas
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
•
14.2K vistas
エラーハンドリング
道化師 堂華
•
2.8K vistas
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
•
12.7K vistas
ゲーム開発者のための C++11/C++14
Ryo Suzuki
•
102.7K vistas
Emcpp item31
mitsutaka_takeda
•
10.4K vistas
クロージャデザインパターン
Moriharu Ohzu
•
19.5K vistas
Boost.Coroutine
melpon
•
23.8K vistas
templateとautoの型推論
MITSUNARI Shigeo
•
15K vistas
新しい並列for構文のご提案
yohhoy
•
29.6K vistas
C++11
京大 マイコンクラブ
•
2.6K vistas
unique_ptrにポインタ以外のものを持たせるとき
Shintarou Okada
•
6.9K vistas
グリとブランのC++講座 ~c++98(stl)と、ほんのちょっとのc++11~
HEXADRIVE Inc.
•
13.6K vistas
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
•
1.7K vistas
すごいConstたのしく使おう!
Akihiro Nishimura
•
13.2K vistas
C# 8.0 null許容参照型
信之 岩永
•
2.8K vistas
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
•
955 vistas
Destacado
Window 10 楽しい使い方
Takae Sakushima
1.3K vistas
•
64 diapositivas
エクストリームC++11/14プログラミング
egtra
2.1K vistas
•
26 diapositivas
Windows 10 フォローアップ講座
Takae Sakushima
8.1K vistas
•
126 diapositivas
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
9.4K vistas
•
59 diapositivas
Template Meta Programming入門から応用まで
yoshihikoozaki5
12.2K vistas
•
417 diapositivas
ICLR読み会 奥村純 20170617
Jun Okumura
33.9K vistas
•
20 diapositivas
Destacado
(13)
Window 10 楽しい使い方
Takae Sakushima
•
1.3K vistas
エクストリームC++11/14プログラミング
egtra
•
2.1K vistas
Windows 10 フォローアップ講座
Takae Sakushima
•
8.1K vistas
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
•
9.4K vistas
Template Meta Programming入門から応用まで
yoshihikoozaki5
•
12.2K vistas
ICLR読み会 奥村純 20170617
Jun Okumura
•
33.9K vistas
[ICLR2017読み会 @ DeNA] ICLR2017紹介
Takeru Miyato
•
26.1K vistas
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Eiji Sekiya
•
34.1K vistas
医療データ解析界隈から見たICLR2017
RIKEN, Medical Sciences Innovation Hub Program (MIH)
•
33.9K vistas
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
Takahiro Kubo
•
37.9K vistas
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
Takanori Nakai
•
33.5K vistas
170614 iclr reading-public
Katsuhiko Ishiguro
•
34.1K vistas
Q prop
Reiji Hatsugai
•
33.3K vistas
Similar a C++入門?
C++ tips2 インクリメント編
道化師 堂華
3.3K vistas
•
16 diapositivas
QtでHello, World!!
treby
2K vistas
•
16 diapositivas
GoによるiOSアプリの開発
Takuya Ueda
16.2K vistas
•
43 diapositivas
Cプログラマのためのカッコつけないプログラミングの勧め
MITSUNARI Shigeo
5.8K vistas
•
20 diapositivas
センパイ!このプログラムクラッシュするんですけど。。。
yjono Seino
3.2K vistas
•
63 diapositivas
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
21.7K vistas
•
104 diapositivas
Similar a C++入門?
(20)
C++ tips2 インクリメント編
道化師 堂華
•
3.3K vistas
QtでHello, World!!
treby
•
2K vistas
GoによるiOSアプリの開発
Takuya Ueda
•
16.2K vistas
Cプログラマのためのカッコつけないプログラミングの勧め
MITSUNARI Shigeo
•
5.8K vistas
センパイ!このプログラムクラッシュするんですけど。。。
yjono Seino
•
3.2K vistas
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
•
21.7K vistas
Python東海GAEやってみた
Mori Shingo
•
467 vistas
SystemC Tutorial
kocha2012
•
9.1K vistas
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Yuta Hayakawa
•
1.3K vistas
Pythonを用いた高水準ハードウェア設計環境の検討
Shinya Takamaeda-Y
•
4.3K vistas
2016年第一回プレ卒研in山口研
dmcc2015
•
121 vistas
制約をつけて遊ぼう
Fumihito Yokoyama
•
753 vistas
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
•
48.7K vistas
Open modeler
Yoshiki Izumi
•
661 vistas
Pythonによる非同期プログラミング入門
Hironori Sekine
•
50.6K vistas
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
johgus johgus
•
20 vistas
Reinvent first-participation-report
j3miyake
•
333 vistas
Synverll
Hidemi Ishihara
•
1.8K vistas
C#勉強会
hakugakucafe
•
1.6K vistas
Unity C#3からC#6に向けて
onotchi_
•
2.3K vistas
Más de tsudaa
Json型の使い方
tsudaa
2.9K vistas
•
21 diapositivas
ぬぎんくす問題
tsudaa
1.9K vistas
•
20 diapositivas
Windows でも時刻合わせがしたい!
tsudaa
1.4K vistas
•
28 diapositivas
Python と私の事情
tsudaa
4.7K vistas
•
21 diapositivas
真理とは何か
tsudaa
1.4K vistas
•
25 diapositivas
Excelのどうでもよいtipsの紹介
tsudaa
1.9K vistas
•
45 diapositivas
Más de tsudaa
(18)
Json型の使い方
tsudaa
•
2.9K vistas
ぬぎんくす問題
tsudaa
•
1.9K vistas
Windows でも時刻合わせがしたい!
tsudaa
•
1.4K vistas
Python と私の事情
tsudaa
•
4.7K vistas
真理とは何か
tsudaa
•
1.4K vistas
Excelのどうでもよいtipsの紹介
tsudaa
•
1.9K vistas
MySQL のユーザー定義変数と RDB のココロ
tsudaa
•
2.3K vistas
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
tsudaa
•
1.1K vistas
ドメイン名の話 (データベース/SQL)
tsudaa
•
4.7K vistas
スターマークの話
tsudaa
•
1.4K vistas
Powershell のセキュリティ (大都会ver)
tsudaa
•
1K vistas
昼の12時は午○何時?
tsudaa
•
858 vistas
PowerShell 紹介
tsudaa
•
2.2K vistas
全角チルダ問題
tsudaa
•
104.3K vistas
資格は役に立つか
tsudaa
•
4K vistas
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
tsudaa
•
1.1K vistas
文字数はおいくら?(Ruby版)
tsudaa
•
862 vistas
法律の読み方とか
tsudaa
•
904 vistas
C++入門?
1.
C++入門? LTDD広島#2 2014/4/5 @tsuda_ahr
2.
自己紹介
3.
昔から C++ の入門書に違和感があったので、 ちょっとそれについてまとめてみました。
4.
注意! これから話す内容は個人的な感想であって、 正確性とか妥当性とかは一切検証していません。
5.
CのHello World #include <stdio.h> int
main(void) { printf("Hello, world!"); return 0; } 出典 http://ja.wikipedia.org/wiki/Hello worldプログラムの一覧 hello_1.c
6.
実行 動く。
7.
C++のHello World #include <iostream> int
main() { std::cout << "Hello, world!" << std::endl; } // return がないのはいいのか?・・・ 出典 http://ja.wikipedia.org/wiki/Hello worldプログラムの一覧 hello_2.cpp
8.
は?
9.
なにこれ?
10.
なんでこんなに違うわけ? わけわかんない!
11.
とりあえず実行 まあ、動く。
12.
Cのコードだとダメなわけ? #include <stdio.h> int main(void) { printf("Hello,
world!"); return 0; } 出典 http://ja.wikipedia.org/wiki/Hello worldプログラムの一覧 hello_3.cpp
13.
CのコードをC++でコンパイルして実行! 動くやん!
14.
なぜだ! なぜ C と同じコードじゃないんだ?
15.
調べた C++ では新しい入出力機能 が存在していますから、 それを使うのが C++らしい 書き方です。 ということらしいです。 出典
http://www.geocities.jp/ky_webid/ProgrammingPlacePlus/cpp/language/001.html
16.
なにが C++ らしいのか? #include
<iostream> int main() { std::cout << "Hello, world!" << std::endl; } Iostreamライブラリ “.h“ がついてない 名前空間 標準出力ストリーム グローバルオブジェクト 出力演算子 行を終了し、バッファを フラッシュするオブジェクト? なんかもりだくさん。 実はオーバーロード
17.
ところで
18.
<<
19.
出力演算子って何? 出典 ストラウストラップのプログラミング入門
20.
<< って言ったら C 的には 左シフト じゃないの?
21.
演算子オーバーロード << を演算子オーバーロードし、 << を実行すると、左シフトではなく、 別の処理を実行するようにしている。 #
cout の場合は標準出力へ出力する。 要するに C++ では演算子がどのような演算を するかをプログラムで指定する仕組みがあり、 それで演算子の動作を変えている。
22.
盛りだくさんです。 おなかいっぱい。
23.
Hello World ごときで こんなに盛るなよ(汗
24.
ところで C++ で C
でいう以下のコード場合どう書けば いいんすか? #include <stdio.h> int main(void) { printf("%7.2f %02x", 12.3, 10); return 0; }
25.
調べた でも大丈夫です。 C++ は C
と互換性があるのでコード内で cout と printf をごちゃ混ぜに しても良いのです。 簡単な出力やデバッグには cout 、 計算結果など小数のフォーマットをそろえたい ときは printf と使い分ければ 問題ありません。 出典 http://www.flow.cs.is.nagoya-u.ac.jp/hamada/programming/cpp2.html
27.
じゃあ最初から printf でいいじゃねーかよ(汗 そのほうがひとつですむじゃん(汗 cout
いらねーじゃん(汗
28.
まとめ 言語の力を誇示するのはやめましょう。 具体的には、 ・無用なクラス/関数を作ったり ・無駄に演算子オーバーロードを使ったり すると ・可読性を落とすだけで利点なし という結果に堕ちる場合があるので注意します。
29.
特に! << を演算子を、本来の左シフトからまったく 意味が異なる機能に差し替えるなどは、百害 あって一利なし。(個人的見解) 演算子オーバーロードを使用するときには、元 の演算子の機能を踏まえたうえで実装するよう 注意しましょう。 (通常のオーバーロードやオーバーライドする ときも同様ですが)
30.
ご清聴ありがとうございました
31.
参考1) cout による書式設定 別に
cout が書式設定できないわけではないよ うです。 出典 http://msdn.microsoft.com/ja-jp/library/420970az.aspx #include <iostream> #include <iomanip> using namespace std; int main() { cout << setiosflags(ios::fixed); cout << setw(7); cout << setprecision(2); cout << 12.3; cout << " "; cout.fill('0'); cout << setw(2); cout << hex; cout << 10; }
32.
参考2) もっとも美しきクソコード (個人的見解) void
strcpy (char *s, char *t) { while (*s++ = *t++) ; } 出典 プログラミング言語C