|
なんか思ったよりみんなの食いつきがいいので でも、気まぐれ更新なので過度の期待は禁物 今回はオブジェクト指向(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();
}
クラスなどの場合などは内部メンバ変数にデータを入力などをするのですが 次回は関数のデフォルト引数についてちょこっと書いて |