2017年09月23日
《その43》 関数の多重定義(p.233演習6-20,演習6-21),インライン関数(p.235演習6-22)
新版明解C++入門編 p.233 演習6-20
二つのint型変数 a, b の最小値、三つのint型変数 a, b, c の最小値を求める、以下に示す多重定義された関数群を作成せよ。
int min(int a, int b);
int min(int a, int b, int c);
// p233_演習6-20
#include <iostream>
using namespace std;
int min(int a, int b)
{
return a < b ? a : b;
}
int min(int a, int b, int c)
{
int min = a;
if (b < min) min = b;
if (c < min) min = c;
return min;
}
int main()
{
int x, y, z;
cout << "xの値:"; cin >> x;
cout << "yの値:"; cin >> y;
cout << "xとyの最小値は" << min(x, y) << '\n';
cout << "zの値:"; cin >> z;
cout << "x, y, zの最小値は" << min(x, y, z) << '\n';
}
新版明解C++入門編 p.233 演習6-21
short型整数xの絶対値、int型整数xの絶対値、・・・を求める、以下に示す多重定義された関数群を作成せよ。
short absolute(short x);
int absolute(int x);
long absolute(long x);
float absolute(float x);
double absolute(double x);
long double absolute(long double x);
プログラムがちょっと長くなってしまいますが、多重定義された関数群の中のどれが使用されたのかが分かるようにしました。
例えば、int absolute(int x) が使われた場合は、「int用の関数が使われました。」と表示されます。
// p233_演習6-21
#include <iostream>
using namespace std;
short absolute(short x) {
cout << " short "
<< "用の関数が使われました。\n 絶対値は ";
if (x < 0) x *= -1; return x;
}
int absolute(int x) {
cout << " int "
<< "用の関数が使われました。\n 絶対値は ";
if (x < 0) x *= -1; return x;
}
long absolute(long x) {
cout << " long "
<< "用の関数が使われました。\n 絶対値は ";
if (x < 0) x *= -1; return x;
}
float absolute(float x) {
cout << " float "
<< "用の関数が使われました。\n 絶対値は ";
if (x < 0) x *= -1; return x;
}
double absolute(double x) {
cout << " double "
<< "用の関数が使われました。\n 絶対値は ";
if (x < 0) x *= -1; return x;
}
long double absolute(long double x) {
cout << " long double"
<< "用の関数が使われました。\n 絶対値は ";
if (x < 0) x *= -1; return x;
}
int main()
{
cout << "@ short\n";
short a = -1234 ; cout << absolute(a) << '\n';
cout << "A int\n";
int b = -1234 ; cout << absolute(b) << '\n';
cout << "B long\n";
long c = -1234 ; cout << absolute(c) << '\n';
cout << "C float\n";
float d = -1.234; cout << absolute(d) << '\n';
cout << "D double\n";
double e = -1.234; cout << absolute(e) << '\n';
cout << "E long double\n";
long double f = -1.234; cout << absolute(f) << '\n';
}
新版明解C++入門編 p.235 演習6-22
xの2乗を求めるインライン関数、3乗を求めるインライン関数を作成せよ。
inline double square(double x);
inline double cube(double x);
// p235_演習6-22
#include <iostream>
using namespace std;
inline double square(double x) {
return x * x;
}
inline double cube(double x) {
return x * x *x;
}
int main() {
double x;
cout << "実数値 : "; cin >> x;
cout << "2乗は " << square(x) << '\n';
cout << "3乗は " << cube(x) << '\n';
}
--
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6729992
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック