なんか思ったよりみんなの食いつきがいいので でも、気まぐれ更新なので過度の期待は禁物 今回はオブジェクト指向(class)から若干離れて void Status(char* name,float power,int HP); 簡単にいってしまえば、引数や戻り値が異なっていれば これの何がおいしいの?っていわれれば #include <iostream> #include <string.h> using namespace std; // Add関数(整数同士の足し算) int Add(int a,int b) { return a+b; } // Add関数のオーバーロード(浮動少数同士の足し算) float Add(float a,float b) { return a+b; } int main() { int a,b; float c,d; a = 5; b = 3; c = 3.4f; d = 1.2f; cout << "引数の型を自動判別してint Add(int a,int b)が呼ばれる Add = " << Add(a,b) << endl; cout << "引数の型を自動判別してfloat Add(float a,float b)が呼ばれる Add =" << Add(c,d) << endl; return 0; } 引数の型をコンパイラが自動的に判別してくれ、 // 掛け算Add関数 int Add(int a,int b) { return a*b; } 上記の関数を↑のプログラムのmain関数の前に追加してみてください クラス内関数とかのほうがより実用的な例になります、 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string.h> using namespace std; class Status { // classの変数や関数(クラス内の変数(関数)はメンバ変数(関数)という)は // デフォルトでprivateだけど明示しておく // privateのメンバ変数(関数)は外部(main関数など)からアクセス(参照)できない private: char name[256]; float power; int HP; // public以降の変数や関数は外部からアクセス(参照)できる public: void SetStatus(char* charname,float charpower,int charHP) { strcpy(name,charname); power = charpower; HP = charHP; } void SetStatus(float charpower,int charHP) { strcpy(name,"Unknown"); power = charpower; HP = charHP; } void Show() { cout << "name:" << name << endl; cout << "power:" << power << endl; cout << "HP:" << HP << endl; } }; int main() { Status st; st.SetStatus(4.3f,100); st.Show(); st.SetStatus("勇者",6.5f,248); st.Show(); } クラスなどの場合などは内部メンバ変数にデータを入力などをするのですが 次回は関数のデフォルト引数についてちょこっと書いて |