宣言や定義の時に、関数や変数の説明を近くにコメントとして書いておくと、実際に変数や関数を使うときに、そのコメントをヒントとして表示してくれます。 自分で設計したものですが、プログラムが大きくなったり、ほかの人と同時に作業を進めるときにはとても重宝しますので、説明のコメントはめんどくさくてもちゃんと書きましょう。



#pragma once class cCar { //メンバ変数 float m_body; //ボディーサイズ? int m_tire; //タイヤの耐久度(すり減り具合) bool m_engine;//エンジンがかかっているかどうか float m_speed;//スピード int m_direction;//向いている方向 0:左 1:右 public: //メンバ関数 //エンジンがかかっていたら、スピードを10キロあげる float doMove();//走る void doTurn(int _direction);//曲がる void doStop();//止まる void printCarStatus(); };//←宣言はセミコロンで終わるよ
void cCar::printCarStatus() { std::cout << "Body Size : " << m_body << "m" << std::endl; std::cout << "Tire : " << m_tire << " % " << std::endl; if (m_engine) std::cout << "Engine : Running" << std::endl; else std::cout << "Engine : Stopped" << std::endl; std::cout << "Speed : " << m_speed << " km/s " << std::endl; std::cout << "Direction : "; switch (m_direction) { case -1: std::cout << "Left" << std::endl; break; case 0: std::cout << "Forward" << std::endl; break; case 1: std::cout << "Right" << std::endl; break; defaut: std::cout << "Forward" << std::endl; break; } }
#pragma once class cCar { private: //メンバ変数 //ボディーサイズ? float m_body; //タイヤの耐久度(すり減り具合) int m_tire; //エンジンがかかっているかどうか //true:エンジンON false:エンジンOFF bool m_engine; //スピード float m_speed; //向いている方向 -1:左 0:前 1:右 int m_direction; public: //メンバ関数 //コンストラクタ //constructor : メンバ変数の初期化をする //特別なメンバ関数 cCar(); //エンジンがかかっていなかったらエンジンON //戻り値 なし //引数 なし void ignition(); float doMove();//走る //エンジンがかかっていたら、スピードを10キロあげる void doAccel();//アクセル踏む //エンジンがかかっていたらかつ、車が動いていたら、 //スピードを10キロ下げる(最小値0) void doBreak();//ブレーキ踏む //上の二つを実装して、mainから呼んでstatusを確認 void doTurn(int _direction);//曲がる //エンジンがかかっていたらエンジンをストップする //戻り値 なし //引数 なし void doStop();//エンジン止まる //現在の車の状態を表示するメンバ関数 //戻り値 なし //引数 なし void printCarStatus(); };//←宣言はセミコロンで終わるよ
#include "ccar.h" #include <iostream> #include <string> cCar::cCar() { //ボディーサイズ? メートル? m_body = 2.5; //タイヤの耐久度(すり減り具合)パーセント? m_tire = 100; //エンジンがかかっているかどうか //true:エンジンON false:エンジンOFF m_engine = false; m_speed = 0.0;//スピード m_direction = 0; //前 } void cCar::ignition() { //エンジンをかける(エンジンがかかってなかったら) if (m_engine == false) m_engine = true; else std::cout << "Engine : Already Running" << std::endl; } void cCar::doStop() { //エンジンを止める(かかっていたら) if (m_engine == true) m_engine = false; else std::cout << "Engine : Not Running" << std::endl; } void cCar::printCarStatus() { std::cout << "-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+" << std::endl; std::cout << "Body Size : " << m_body << "m" << std::endl; std::cout << "Tire : " << m_tire << " % " << std::endl; if (m_engine) std::cout << "Engine : Running" << std::endl; else std::cout << "Engine : Stopped" << std::endl; std::cout << "Speed : " << m_speed << " km/s " << std::endl; std::cout << "Direction : "; switch (m_direction) { case -1: std::cout << "Left" << std::endl; break; case 0: std::cout << "Forward" << std::endl; break; case 1: std::cout << "Right" << std::endl; break; defaut: std::cout << "Forward" << std::endl; break; } std::cout << "-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+" << std::endl; }
#include <iostream> #include "ccar.h" int main() { cCar mycar; //m_engineはprivateなのでアクセスできない!! //mycar.m_engine = true; mycar.ignition(); mycar.printCarStatus(); //ccar.cに void doStop();の実装を書き //mainで実際に呼び出し、エンジンをストップさせ //現在の車の状況を出力する mycar.doStop(); mycar.printCarStatus(); return 0; }
エンジンがかかっていたら、スピードを10キロあげる
void doAccel();アクセル踏む
エンジンがかかっていたらかつ、車が動いていたら、
スピードを10キロ下げる(最小値0)
void doBreak();ブレーキ踏む
上の二つを実装して、mainから呼んでstatusを確認