' P '

whatever I will forget

C++ 関数定義

なんか微妙に覚えられないので備忘録

C++では関数を使うときに
1. プロトタイプ関数の宣言
2. 作った関数をcallするmain関数
3. 作った関数のロジック定義

でやっていこうとしているのだが、定義時にいつもしょうもないエラーを発生させてしまう・・・

1. プロトタイプ関数の宣言

この部分では、関数で使用するデフォルト変数を定義することができる。
例えば、int find_area(int a =0);のように。
このとき、int find_area(int a {0});としようとするとエラーになる。 関数のオーバーロードをするなら、型に気をつけましょう!

2.については特に記載なし。

3.作った関数のロジック定義

この部分だけど、基本的にプロトタイプ関数宣言時と同じように記述しないといけない(変数名は別)
int find_area(int);とプロトタイプ宣言をしたのであれば、
ロジック部分でも同じように、

int find_area(int test){
// logic
}

ってしないといけないんだなぁ、なぜかいつも関数内の型宣言を記述し忘れて、
そのスコープにそんなtestなんていう変数ないわボケって言われてしまうので。

#include <iostream>
#include <cmath>
using namespace std;

int find_area(int);
double find_area(double,double);

void area_calc() {
    
    int square_area = find_area(2);
    double rectangle_area = find_area(4.5,2.3);
    
    cout << "The area of the square is " << square_area << "\n" << "The area of the rectangle is " << rectangle_area;
}

int find_area(int side_length){
    return pow(side_length, 2);
}
double find_area(double length, double width){
    return length * width;
}