cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)

Slides:



Advertisements
Similar presentations
C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
Advertisements

C++ 基礎. 目次 C++ とは? C++ におけるオブジェクト指向 課題 C++ とは? Cには足りなかったものが付与されて出来た物 具体的には、 情報の隠蔽(カプセル化) 共通の名前付け(関数のオーバーロード) 再利用の仕組み クラスの導入 など オブジェクト指向 C++ では大規模なプログラミングの.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
プログラミング基礎I(再) 山元進.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
第10回 プログラミングⅡ 第10回
補足説明.
第2回 Microsoft Visual Studio C++ を使ってみよう
ソフトウェア工学 知能情報学部 新田直也.
Cプログラミング演習 中間まとめ2.
Microsoft Visual Studio 2005 の使い方
Cプログラミング演習 第6回 ファイル処理と配列.
JAVA入門後期⑩ 情報処理試験例題解説.
情報工学演習I 第12回 C++の演習4(インライン展開).
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
Cプログラミング演習.
第11回 宿題 出題日:12月21日 締切日:1月7日(木).
第11週:super/subクラス、継承性、メソッド再定義
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
ソフトウェア制作論 平成30年12月5日.
演習1 : インターフェイスを使ってみよう 「10人の客(乗用車、バイク、ストーブのいずれかランダムに決定)に1~100(L)の給油をするガソリンスタンドをシミュレートする実行クラス : RefuelSimulation」を作成する。給油の際には、どの種類の客が何リットル給油したか出力すること。 実行結果例.
高度プログラミング演習 (02).
変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
Cの実行モデル.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
9.構造体.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング基礎a 第6回 C言語によるプログラミング入門 配列と文字列(その2)
高度プログラミング演習 (01).
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
ソフトウェア制作論 平成30年11月28日.
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
さまざまなプログラミング言語, オンライン開発環境
JAVA入門⑥ クラスとインスタンス.
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
extern の意味 (C プログラミング演習,Visual Studio 2019 対応)
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-3. サブクラス,継承 (C++ オブジェクト指向プログラミング入門)
cp-2. 属性,アクセサ (C++ オブジェクト指向プログラミング入門)
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
フレンド関数とフレンド演算子.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
演算子のオーバーロード.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
4. 合成データ:構造体 プログラミング論I.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
C言語講座第5回 2017 構造体.
高度プログラミング演習 (10).
Presentation transcript:

cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門) https://www.kkaneko.jp/cc/cpp/index.html 金子邦彦

アウトライン クラス定義 メソッドの記述 プログラムの実行

例題1.Ball クラス Ball クラス Ball は,x, y という2つの属性から構成する キーワード class を使用 x y 位置

ソースコード ファイル名: Ball.h #pragma once class Ball { private: double x, y; public: Ball( const double x, const double y ); Ball( const Ball& ball ); Ball& operator= ( const Ball& ball ); ~Ball(); }; 属性(メンバ変数ともいう) コンストラクタ, デストラクタ

ソースコード ファイル名: Ball.cpp #include "Ball.h" Ball::Ball( const double x, const double y ) : x( x ), y( y ) { /* do nothing */ } Ball::Ball( const Ball& ball ) : x( ball.x ), y( ball.y ) Ball& Ball::operator= (const Ball& ball ) this->x = ball.x; this->y = ball.y; return *this; Ball::~Ball()

Visual Studio 2019 C++ でのビルド結果例

演習2.メソッド Ball の座標値から,原点までの距離を求めるメ ソッド distance-to-0 を作り,実行する

ソースコード ファイル名: Ball.h #pragma once class Ball { private: double x, y; public: Ball( const double x, const double y ); Ball( const Ball& ball ); Ball& operator= ( const Ball& ball ); ~Ball(); double distance_to_0() const; }; 属性(メンバ変数ともいう) コンストラクタ, デストラクタ 追加されたメソッド

ソースコード ファイル名: Ball.cpp 追加されたメソッド #include "Ball.h" #include <math.h> Ball::Ball( const double x, const double y ) : x( x ), y( y ) { /* do nothing */ } Ball::Ball( const Ball& ball ) : x( ball.x ), y( ball.y ) Ball& Ball::operator= (const Ball& ball ) this->x = ball.x; this->y = ball.y; return *this; Ball::~Ball() double Ball::distance_to_0() const return sqrt( ( this->x * this->x ) + ( this->y * this->y ) ); 追加されたメソッド

ソースコード ファイル名: main.cpp #include <stdio.h> #include "ball.h" int main( int argc, char** argv ) { Ball* b = new Ball( 3, 4 ); fprintf( stderr, "b->distance_to_0() = %f\n", b->distance_to_0() ); delete b; }

Visual Studio 2019 C++ での実行結果例 プログラムの実行結果が 表示されている

実習課題

問題1 Student クラスを定義しなさい.メンバ変数は 次の通り int _age; char _name[32]; Cの文字列処理の知識を必要とします

解答例 ファイル名: Student.h #pragma once class Student { private: int _age; char _name[32]; public: Student( const int age, const char name[32] ); Student( const Student& student ); Student& operator= (const Student& student ); ~Student(); };

解答例 ファイル名: Student.cpp #include <string.h> #include "Student.h" #pragma warning(disable:4996) Student::Student( const int age, const char name[32] ) : _age( age ) { strcpy( this->_name, name ); } Student::Student( const Student& student ) : _age( student._age ) strcpy( this->_name, student._name ); Student& Student::operator= (const Student& student ) this->_age = student._age; return *this; Student::~Student() /* do nothing */