[B]関数のオーバーロード 独習C++ 練習問題1.7.1 and 2


練習問題 1.7.1
/*----------------------------------------------------------->
独習C++
練習問題1.7.1

引数の平方根を返すsroot()という名前の関数を作成しなさい。
sroot()関数を3通りにオーバーロードし、
それぞれ整数、長整数、倍精度浮動小数点の平方根を返すようにしなさい
------------------------------------------------------------->*/

#include<iostream>
using namespace std;


int Sroot( int num ){
return (int)sqrt( (double) num );
}

long Sroot( long num ){
return (long)sqrt( (double) num );
}

double Sroot( double num ){
return sqrt( num );
}

int main(){

int i = 9;
long L = 9;
double d = 1.44;

cout << "i:" << Sroot( i ) <<" L:" << Sroot( L ) << " d:" << Sroot( d ) ;

getchar();
return 0;
}

練習問題1.7.2
atof
atoi
atol
がオーバーロードできない理由:
これらは、文字列に含まれる数字を返す関数であるから、
引数は必ず文字列のみとなる。
同じ引数を持つ関数はオーバーロードできないから