Enviar búsqueda
Cargar
C++入門?
•
0 recomendaciones
•
3,598 vistas
tsudaa
Seguir
昔からC++ の入門書に違和感があったので、ちょっとそれについてまとめてみました
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 32
Descargar ahora
Descargar para leer sin conexión
Recomendados
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
Map
Map
kikairoya
C++14 Overview
C++14 Overview
Akira Takahashi
C++0x総復習
C++0x総復習
道化師 堂華
Recomendados
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
Map
Map
kikairoya
C++14 Overview
C++14 Overview
Akira Takahashi
C++0x総復習
C++0x総復習
道化師 堂華
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
More C++11
More C++11
京大 マイコンクラブ
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
エラーハンドリング
エラーハンドリング
道化師 堂華
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Emcpp item31
Emcpp item31
mitsutaka_takeda
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
Boost.Coroutine
Boost.Coroutine
melpon
templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
新しい並列for構文のご提案
新しい並列for構文のご提案
yohhoy
C++11
C++11
京大 マイコンクラブ
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
Shintarou Okada
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
すごいConstたのしく使おう!
すごいConstたのしく使おう!
Akihiro Nishimura
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
Window 10 楽しい使い方
Window 10 楽しい使い方
Takae Sakushima
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
Windows 10 フォローアップ講座
Windows 10 フォローアップ講座
Takae Sakushima
Más contenido relacionado
La actualidad más candente
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
More C++11
More C++11
京大 マイコンクラブ
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
エラーハンドリング
エラーハンドリング
道化師 堂華
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Emcpp item31
Emcpp item31
mitsutaka_takeda
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
Boost.Coroutine
Boost.Coroutine
melpon
templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
新しい並列for構文のご提案
新しい並列for構文のご提案
yohhoy
C++11
C++11
京大 マイコンクラブ
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
Shintarou Okada
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
すごいConstたのしく使おう!
すごいConstたのしく使おう!
Akihiro Nishimura
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
La actualidad más candente
(19)
Visual C++で使えるC++11
Visual C++で使えるC++11
More C++11
More C++11
Emcjp item21
Emcjp item21
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
エラーハンドリング
エラーハンドリング
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Emcpp item31
Emcpp item31
クロージャデザインパターン
クロージャデザインパターン
Boost.Coroutine
Boost.Coroutine
templateとautoの型推論
templateとautoの型推論
新しい並列for構文のご提案
新しい並列for構文のご提案
C++11
C++11
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
すごいConstたのしく使おう!
すごいConstたのしく使おう!
C# 8.0 null許容参照型
C# 8.0 null許容参照型
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Destacado
Window 10 楽しい使い方
Window 10 楽しい使い方
Takae Sakushima
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
Windows 10 フォローアップ講座
Windows 10 フォローアップ講座
Takae Sakushima
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
yoshihikoozaki5
ICLR読み会 奥村純 20170617
ICLR読み会 奥村純 20170617
Jun Okumura
[ICLR2017読み会 @ DeNA] ICLR2017紹介
[ICLR2017読み会 @ DeNA] ICLR2017紹介
Takeru Miyato
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Eiji Sekiya
医療データ解析界隈から見たICLR2017
医療データ解析界隈から見たICLR2017
RIKEN, Medical Sciences Innovation Hub Program (MIH)
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
Takahiro Kubo
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
Takanori Nakai
170614 iclr reading-public
170614 iclr reading-public
Katsuhiko Ishiguro
Q prop
Q prop
Reiji Hatsugai
Destacado
(12)
Window 10 楽しい使い方
Window 10 楽しい使い方
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
Windows 10 フォローアップ講座
Windows 10 フォローアップ講座
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
ICLR読み会 奥村純 20170617
ICLR読み会 奥村純 20170617
[ICLR2017読み会 @ DeNA] ICLR2017紹介
[ICLR2017読み会 @ DeNA] ICLR2017紹介
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
医療データ解析界隈から見たICLR2017
医療データ解析界隈から見たICLR2017
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
170614 iclr reading-public
170614 iclr reading-public
Q prop
Q prop
Similar a C++入門?
C++ tips2 インクリメント編
C++ tips2 インクリメント編
道化師 堂華
QtでHello, World!!
QtでHello, World!!
treby
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧め
MITSUNARI Shigeo
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
yjono Seino
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
Python東海GAEやってみた
Python東海GAEやってみた
Mori Shingo
SystemC Tutorial
SystemC Tutorial
kocha2012
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Yuta Hayakawa
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討
Shinya Takamaeda-Y
2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研
dmcc2015
制約をつけて遊ぼう
制約をつけて遊ぼう
Fumihito Yokoyama
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
Open modeler
Open modeler
Yoshiki Izumi
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
Hironori Sekine
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
johgus johgus
Reinvent first-participation-report
Reinvent first-participation-report
j3miyake
Synverll
Synverll
Hidemi Ishihara
C#勉強会
C#勉強会
hakugakucafe
Unity C#3からC#6に向けて
Unity C#3からC#6に向けて
onotchi_
Similar a C++入門?
(20)
C++ tips2 インクリメント編
C++ tips2 インクリメント編
QtでHello, World!!
QtでHello, World!!
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧め
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
Python東海GAEやってみた
Python東海GAEやってみた
SystemC Tutorial
SystemC Tutorial
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討
2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研
制約をつけて遊ぼう
制約をつけて遊ぼう
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Open modeler
Open modeler
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
Reinvent first-participation-report
Reinvent first-participation-report
Synverll
Synverll
C#勉強会
C#勉強会
Unity C#3からC#6に向けて
Unity C#3からC#6に向けて
Más de tsudaa
Json型の使い方
Json型の使い方
tsudaa
ぬぎんくす問題
ぬぎんくす問題
tsudaa
Windows でも時刻合わせがしたい!
Windows でも時刻合わせがしたい!
tsudaa
Python と私の事情
Python と私の事情
tsudaa
真理とは何か
真理とは何か
tsudaa
Excelのどうでもよいtipsの紹介
Excelのどうでもよいtipsの紹介
tsudaa
MySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロ
tsudaa
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
tsudaa
ドメイン名の話 (データベース/SQL)
ドメイン名の話 (データベース/SQL)
tsudaa
スターマークの話
スターマークの話
tsudaa
Powershell のセキュリティ (大都会ver)
Powershell のセキュリティ (大都会ver)
tsudaa
昼の12時は午○何時?
昼の12時は午○何時?
tsudaa
PowerShell 紹介
PowerShell 紹介
tsudaa
全角チルダ問題
全角チルダ問題
tsudaa
資格は役に立つか
資格は役に立つか
tsudaa
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
tsudaa
文字数はおいくら?(Ruby版)
文字数はおいくら?(Ruby版)
tsudaa
法律の読み方とか
法律の読み方とか
tsudaa
Más de tsudaa
(18)
Json型の使い方
Json型の使い方
ぬぎんくす問題
ぬぎんくす問題
Windows でも時刻合わせがしたい!
Windows でも時刻合わせがしたい!
Python と私の事情
Python と私の事情
真理とは何か
真理とは何か
Excelのどうでもよいtipsの紹介
Excelのどうでもよいtipsの紹介
MySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロ
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
ドメイン名の話 (データベース/SQL)
ドメイン名の話 (データベース/SQL)
スターマークの話
スターマークの話
Powershell のセキュリティ (大都会ver)
Powershell のセキュリティ (大都会ver)
昼の12時は午○何時?
昼の12時は午○何時?
PowerShell 紹介
PowerShell 紹介
全角チルダ問題
全角チルダ問題
資格は役に立つか
資格は役に立つか
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
文字数はおいくら?(Ruby版)
文字数はおいくら?(Ruby版)
法律の読み方とか
法律の読み方とか
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
26.
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
Descargar ahora