Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
TN
Uploaded by
Tomohiro Namba
445 views
研究生のためのC++ no.3
研究室のゼミの資料。研究に役立つC++入門。 三回目はクラス。
Software
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
7
/ 24
8
/ 24
9
/ 24
10
/ 24
11
/ 24
12
/ 24
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
21
/ 24
22
/ 24
23
/ 24
24
/ 24
More Related Content
PDF
研究生のためのC++ no.4
by
Tomohiro Namba
PDF
研究生のためのC++ no.2
by
Tomohiro Namba
PDF
命令プログラミングから関数プログラミングへ
by
Naoki Kitora
PPTX
Enshu8
by
sudahiroshi
PPT
CLR/H No.35-2
by
Nobuhisa Koizumi
PDF
Pythonデータ分析 第3回勉強会資料 8章
by
Makoto Kawano
PDF
[第2版]Python機械学習プログラミング 第14章
by
Haruki Eguchi
PDF
Emcjp item21
by
MITSUNARI Shigeo
研究生のためのC++ no.4
by
Tomohiro Namba
研究生のためのC++ no.2
by
Tomohiro Namba
命令プログラミングから関数プログラミングへ
by
Naoki Kitora
Enshu8
by
sudahiroshi
CLR/H No.35-2
by
Nobuhisa Koizumi
Pythonデータ分析 第3回勉強会資料 8章
by
Makoto Kawano
[第2版]Python機械学習プログラミング 第14章
by
Haruki Eguchi
Emcjp item21
by
MITSUNARI Shigeo
What's hot
PDF
[第2版]Python機械学習プログラミング 第16章
by
Haruki Eguchi
PDF
[第2版]Python機械学習プログラミング 第8章
by
Haruki Eguchi
PDF
NumPy闇入門
by
Ryosuke Okuta
PDF
Ekmett勉強会発表資料
by
時響 逢坂
ODP
Ekmett勉強会発表資料
by
時響 逢坂
PDF
Gura プログラミング言語の紹介
by
Yutaka Saito
PDF
すごいHaskell楽しく学ぼう-第12章モノイド-
by
Hiromasa Ohashi
PDF
関数型プログラミング入門 with OCaml
by
Haruka Oikawa
PDF
Python for Data Anaysis第2回勉強会4,5章
by
Makoto Kawano
PDF
Processingによるプログラミング入門 第2回
by
Ryo Suzuki
PDF
すごいH 第12章モノイド
by
Shinta Hatatani
PDF
数式をnumpyに落としこむコツ
by
Shuyo Nakatani
PDF
Introduction to NumPy & SciPy
by
Shiqiao Du
PDF
Van laarhoven lens
by
Naoki Aoyama
KEY
モナドがいっぱい!
by
Kenta Sato
PDF
2013.07.15 はじパタlt scikit-learnで始める機械学習
by
Motoya Wakiyama
ODP
Real World OCamlを読んでLispと協調してみた
by
blackenedgold
PDF
科学技術計算関連Pythonパッケージの概要
by
Toshihiro Kamishima
PPTX
Map
by
kikairoya
PDF
C++コンパイラ GCCとClangからのメッセージをお読みください
by
digitalghost
[第2版]Python機械学習プログラミング 第16章
by
Haruki Eguchi
[第2版]Python機械学習プログラミング 第8章
by
Haruki Eguchi
NumPy闇入門
by
Ryosuke Okuta
Ekmett勉強会発表資料
by
時響 逢坂
Ekmett勉強会発表資料
by
時響 逢坂
Gura プログラミング言語の紹介
by
Yutaka Saito
すごいHaskell楽しく学ぼう-第12章モノイド-
by
Hiromasa Ohashi
関数型プログラミング入門 with OCaml
by
Haruka Oikawa
Python for Data Anaysis第2回勉強会4,5章
by
Makoto Kawano
Processingによるプログラミング入門 第2回
by
Ryo Suzuki
すごいH 第12章モノイド
by
Shinta Hatatani
数式をnumpyに落としこむコツ
by
Shuyo Nakatani
Introduction to NumPy & SciPy
by
Shiqiao Du
Van laarhoven lens
by
Naoki Aoyama
モナドがいっぱい!
by
Kenta Sato
2013.07.15 はじパタlt scikit-learnで始める機械学習
by
Motoya Wakiyama
Real World OCamlを読んでLispと協調してみた
by
blackenedgold
科学技術計算関連Pythonパッケージの概要
by
Toshihiro Kamishima
Map
by
kikairoya
C++コンパイラ GCCとClangからのメッセージをお読みください
by
digitalghost
Viewers also liked
PPTX
Globalizacion.unid
by
Dih Brambila
PDF
SERTIFIKAT SPSS PSI
by
Faisal Chairul Oktawijaya
PPTX
Hallmarks from spain (english)
by
craextremadura
PPTX
Los cambios de la materia
by
analabradorcra
PPTX
Inteligencia artificial: Las Expectativas del pasado al futuro
by
Daniel Diaz
PDF
Resumen men REDA
by
Yeny Andrea Gavidia Contreras
PPTX
maths - ordering numbers
by
Selçuk Güven
PPTX
Question 5
by
Lucy Talbot
PDF
Realizacje MyLED
by
MyLED
Globalizacion.unid
by
Dih Brambila
SERTIFIKAT SPSS PSI
by
Faisal Chairul Oktawijaya
Hallmarks from spain (english)
by
craextremadura
Los cambios de la materia
by
analabradorcra
Inteligencia artificial: Las Expectativas del pasado al futuro
by
Daniel Diaz
Resumen men REDA
by
Yeny Andrea Gavidia Contreras
maths - ordering numbers
by
Selçuk Güven
Question 5
by
Lucy Talbot
Realizacje MyLED
by
MyLED
Similar to 研究生のためのC++ no.3
PDF
中3女子でもわかる constexpr
by
Genya Murakami
PDF
Hupc 1
by
Hiroki Takeda
PDF
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
PDF
C++11のつかいかた
by
amusementcreators
PDF
高速な倍精度指数関数expの実装
by
MITSUNARI Shigeo
PDF
C++ lecture-1
by
sunaemon
PDF
中3女子が狂える本当に気持ちのいい constexpr
by
Genya Murakami
PPTX
ふるたに流プログラミング学習法
by
Kazuma Furutani
PDF
研究生のためのC++ no.6
by
Tomohiro Namba
PPTX
Introduction to programming
by
HCPC: 北海道大学競技プログラミングサークル
PPTX
プログラマーSeの数学
by
Yusuke Shinohara
PDF
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
by
和弘 井之上
PDF
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
by
Hiro H.
PPT
C++でぼくが忘れがちなこと
by
Toshihiko Ando
PDF
フラグを愛でる
by
MITSUNARI Shigeo
PDF
リテラル文字列型までの道
by
Satoshi Sato
PDF
組み込みでこそC++を使う10の理由
by
kikairoya
PDF
C++11概要 ライブラリ編
by
egtra
PDF
C++ lecture-0
by
sunaemon
中3女子でもわかる constexpr
by
Genya Murakami
Hupc 1
by
Hiroki Takeda
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
C++11のつかいかた
by
amusementcreators
高速な倍精度指数関数expの実装
by
MITSUNARI Shigeo
C++ lecture-1
by
sunaemon
中3女子が狂える本当に気持ちのいい constexpr
by
Genya Murakami
ふるたに流プログラミング学習法
by
Kazuma Furutani
研究生のためのC++ no.6
by
Tomohiro Namba
Introduction to programming
by
HCPC: 北海道大学競技プログラミングサークル
プログラマーSeの数学
by
Yusuke Shinohara
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
by
和弘 井之上
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
by
Hiro H.
C++でぼくが忘れがちなこと
by
Toshihiko Ando
フラグを愛でる
by
MITSUNARI Shigeo
リテラル文字列型までの道
by
Satoshi Sato
組み込みでこそC++を使う10の理由
by
kikairoya
C++11概要 ライブラリ編
by
egtra
C++ lecture-0
by
sunaemon
研究生のためのC++ no.3
1.
C++ For Researchers 研究生のためのC++ 企画・立案
難波知宏
2.
クラス 第三回 2
3.
クラスを作ろう 第一節 3
4.
数学の三次元ベクトルを作ってみよう Exercise 3-1 4
5.
皆さんの意見 • 例)ベクトルの加算 • 逆行列の計算 •
ベクトルの内積・外積 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⓪ どんなことがしたいか考えよう (ベクトルに関する処理にはどんなものがあるだろうか?) 5
6.
どんな機能が必要か? • ベクトル+ベクトル • -ベクトル •
ベクトルの大きさ • ベクトルの内積 … ベクトルクラスを使う側 (exercise 3-1/main.cpp) #include "Vector3.h" int main() { // ベクトルを初期化する. Vector3 a(0.1f, 0.2f, 0.3f); Vector3 b(0.9f, 0.8f, 0.7f); // ベクトルの加算をする. Vector3 c = a + b; // ベクトルの符号を反転する. Vector3 d = -c; // 大きさを計算する. float m = c.magnitude(); // 内積を計算する. float i = Vector3::dot(a, b); } 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⓪ どんなことがしたいか考えよう 6
7.
exercise 3-01/Vector3.h class Vector3
{}; 数学の三次元ベクトルを作ってみよう Exercise 3-1 ① クラスを定義しよう class C {}; でクラスを定義. 7
8.
exercise 3-01/Vector3.h class Vector3 { public: private: }; 数学の三次元ベクトルを作ってみよう Exercise
3-1 ② public領域とprivate領域を定義しよう public: でクラス外部から参照できる 領域を定義. private: でクラス内部からのみ参照で きる領域を定義. (この演習問題では未使用) 8
9.
exercise 3-01/Vector3.h class Vector3 { public: float
x, y, z; }; 数学の三次元ベクトルを作ってみよう Exercise 3-1 ③ メンバ変数を定義しよう class C { int x; }; でメンバ変数を定義. 9
10.
exercise 3-01/Vector3.h #include <cmath> class
Vector3 { public: float magnitude() { return sqrt(x * x + y * y + z * z); } float x, y, z; }; 数学の三次元ベクトルを作ってみよう Exercise 3-1 ④ メンバ関数を定義しよう class C { int func(…) { … } }; でメンバ関数を定義. 10
11.
exercise 3-01/Vector3.h class Vector3 { public: float
magnitude() { … } static float dot(Vector3 a, Vector3 b) { return a.x * b.x + a.y * b.y + a.z * b.z; } float x, y, z; }; 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⑤ クラス関数を定義しよう class C { static void func(…) { … } }; でクラス関数を定義. 11
12.
#include <cmath> class Vector3 { public: Vector3()
: x(0), y(0), z(0) {} Vector3(float x, float y, float z) : x(x), y(y), z(z) {} … }; exercise 3-01/Vector3.h 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⑥ コンストラクタを定義しよう class C { C(…) { … } }; でコンストラクタを定義. class C { C() { … } }; でデフォルトコンストラクタ を定義. 12
13.
#include <cmath> class Vector3 { … ~Vector3() { } … }; exercise
3-01/Vector3.h 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⑦ デストラクタを定義しよう class C { ~C() { … } }; でデストラクタを定義. 13
14.
exercise 3-01/Vector3.h #include <cmath> class
Vector3 { … Vector3 operator -() { return Vector3(-x, -y, -z); } … }; 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⑧ オリジナルの演算子を定義しよう(1) class C { void operator ○○ (…) { … } }; で ○○ 演算子の定義. 14
15.
exercise 3-01/Vector3.h #include <cmath> class
Vector3 { … }; Vector3 operator +(Vector3 a, Vector3 b) { return Vector3(a.x + b.x, a.y + b.y, a.z + b.z); } 数学の三次元ベクトルを作ってみよう Exercise 3-1 ⑨ オリジナルの演算子を定義しよう(2) void operator △△(…) { … } で △△ 演算子の定義. 15
16.
exercise 3-01/Vector3.h #include <cmath> namespace
math { class Vector3 { … }; Vector3 operator +(Vector3 a, Vector3 b) { … } } 数学の三次元ベクトルを作ってみよう Exercise 3-2 ⑩ 作ったクラスを名前空間内に配置しよう namespace math { … } で名前空間を定義. 16
17.
クラスを使おう 第二節 17
18.
標準で提供されている便利なクラスを知ろう Exercise 3-2 18
19.
exercise 3-02-1 #include <iostream> using
namespace std; int main() { cout << "Hello, world!!!" << endl; int x = 137; cout << x << endl; double y = 3.14; cout << y << endl; } 標準で提供されている便利なクラスを知ろう exercise 3-02 標準入出力 19 std::cout 標準出力 std::cin 標準入力 std::cerr 標準エラー出力 printfでも同じことが できる
20.
exercise 3-02-2 省略 標準で提供されている便利なクラスを知ろう exercise 3-02 ファイル入出力 20 std::ofstream
ファイル出力 std::ifstream ファイル入力
21.
exercise 3-02-3 #include <string> #include
<iostream> using std::cout; using std::endl; using std::string; int main() { string s = "Hello, world"; // append : 末尾に追加 s.append("!!!"); // [] : 先頭の文字にアクセス s[0] = 'A'; // length : 長さを取得 size_t len = s.length(); // find : 文字列検索 size_t idx = s.find("or"); // + : 文字列の連結 string s2 = "Tom says '" + s + "'"; // substr : 部分文字列の取得 string s3 = s.substr(7, 5); } 標準で提供されている便利なクラスを知ろう exercise 3-02 文字列 21 文字列はstd::stringで楽に 使おう
22.
用語集 22
23.
用語集 (1) メンバ関数 クラスのインスタンスに対して呼び出す関数。 メンバ変数
クラスのインスタンスが持つ変数。 クラス関数 クラスに関連付けられる関数。staticをつけて定義する。 クラス変数 クラスに関連付けられる変数。staticをつけて定義する。 public領域 クラス外部からもアクセスできる領域。 protected領域 クラス内部と、そのクラスを継承したクラスの内部からアクセスできる領域。 private領域 クラス内部からのみアクセスできる領域。 thisポインタ インスタンス自身のアドレス。(メンバ関数内でのみ使用可能) 継承 既存のクラスの機能を別のクラスに引き継ぐこと。 コンストラクタ インスタンスが作成されるタイミングで呼び出される関数。 デストラクタ インスタンスが破棄されるタイミングで自動で呼び出される関数。 引数を受け渡すことはできない。 23
24.
用語集 (2) デフォルト コンストラクタ 引数なしのコンストラクタ。 インスタンス クラスから生成された実体。 組み込み型
intとかdoubleなどの最初からある型。 名前空間 関数やデータ型を整理整頓するもの。 24
Download