客観的事物から類を抽象化する例
1869 ワード
プログラムを書いて、矩形の幅と高さを入力して、出力面積と周長
・長方形の属性-幅と高さ
・2つの変数で、それぞれ幅と高さを表す
・矩形への操作
・幅と高さの設定
・面積計算
・周長の計算
・クラス定義変数-->クラスのインスタンス-->オブジェクト
・オブジェクトのメモリ容量
・オブジェクトのサイズ=すべてのメンバー変数のサイズの和
・E.g.Rectangleクラスのオブジェクト、sizeof(Rectangle)=8
・各オブジェクトにそれぞれ独自の記憶スペースがある
・あるオブジェクトのメンバー変数が変更され、他のオブジェクトに影響しない
・対象間の演算
・オブジェクト間で=で代入可能
・=!=><>=<=比較する
・これらの演算子が「リロード」されていない場合
使用法1:対象名メンバー名
使用法2:ポインタ->メンバー名
別の出力方法:
・メンバー関数体とクラスの定義を別々に書く
呼び出しパス:オブジェクト/オブジェクトのポインタ/オブジェクトの参照
北京大学に感謝します!!
・長方形の属性-幅と高さ
・2つの変数で、それぞれ幅と高さを表す
・矩形への操作
・幅と高さの設定
・面積計算
・周長の計算
class Rectangle{
public:
int w, h;
void Init(int w_, int h_){
w = w_;
h = h_;
}
int Area(){
return w * h;
};
int Perimeter(){
return 2 * (w + h);
}
};
int main(){
int w, h;
Rectangle r;//r
cin>>w>>h;
r.Init(w, h);
cout<
・クラス定義変数-->クラスのインスタンス-->オブジェクト
・オブジェクトのメモリ容量
・オブジェクトのサイズ=すべてのメンバー変数のサイズの和
・E.g.Rectangleクラスのオブジェクト、sizeof(Rectangle)=8
・各オブジェクトにそれぞれ独自の記憶スペースがある
・あるオブジェクトのメンバー変数が変更され、他のオブジェクトに影響しない
・対象間の演算
・オブジェクト間で=で代入可能
・=!=><>=<=比較する
・これらの演算子が「リロード」されていない場合
使用法1:対象名メンバー名
Rectangle r1, r2;
r1.w = 5;
r2.Init(3, 4);
使用法2:ポインタ->メンバー名
Rectangle r1, r2;
Rectangle *p1 = &r1;
Rectangle *p2 = &r2;
p1->w = 5;
p2->Init(3, 4);//Init p2
用法3:引用名.メンバー名 Rectangle r2;
Rectangle & rr = r2;
rr.w = 5;
rr.Init(3,4);//rr ,r2
別の出力方法:
void PrintRectangle(Rectangle &r){
cout<
クラスのメンバー関数の別の書き方・メンバー関数体とクラスの定義を別々に書く
class Rectangle{
public:
int w, h;
int Area();//
int Perimeter();
void Init(int w_, int h_);
}
int Rectangle::Area(){
return w * h;
}
int Rectangle::Perimeter(){
return 2 * (w + h);
}
void Rectangle::Init(int w_, int h_){
w = w_;
h = h_;
}
呼び出しパス:オブジェクト/オブジェクトのポインタ/オブジェクトの参照
北京大学に感謝します!!