🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
🌞なぜ void newmadefunction(void){ cout<<"今日もよいC++言語日和です。\n"; return ; } と自作関数が記述されるのでしょうか?(void)に注目
🌞なぜ void newmadefunction(void){ cout<<"今日もよいC++言語日和です。\n"; return ; } と自作関数が記述されるのでしょうか?(void)に注目
#include <iostream>
using namespace std;
void newmadefunction(void){
cout << "今日もよいC++言語日和です。" << "\n";
return ;
}
int main (){
newmadefunction();
return 0;
}
ビルド実行結果
今日もよいC++言語日和です。
ソーラー「では なぜ
void newmadefunction(void){
cout << "今日もよいC++言語日和です。" << "\n";
return ;
}
と自作関数が記述されるのか?
ですね
この仕組みをみていきましょうか
まず
void newmadefunction(void)
の(void)の部分ですね。
自作関数newmadefunctionの定義は
cout << "今日もよいC++言語日和です。" << "\n";
となっていますが
このcout文には
cout<<a<<"個りんごがあります\n";
の変数aのように
数値入力される変数が存在していません。
自作関数の定義に
数値を格納する
変数がないときは(void)
または何も記述せず()
と記述する決まりとなっています。
ですので
#include <iostream>
using namespace std;
void newmadefunction(){
cout << "今日もよいC++言語日和です。" << "\n";
return ;
}
int main (){
newmadefunction();
return 0;
}
ビルド実行結果
今日もよいC++言語日和です。
👆
このプログラムの自作関数newmadefunction()の定義では
数値を格納する
変数がないので
👇
void newmadefunction(){
cout << "今日もよいC++言語日和です。" << "\n";
return ;
}
👆
の
void newmadefunction()
のように
()の中に何も記述されていません。
では
自作関数newmadefunctionの定義
👇
void newmadefunction(int a){
cout<<a<<"個りんごがあります\n";
return ;
}
👆
の仕組みはどうなっているのでしょうか?
このように
自作関数の定義内に
変数aを含む命令文
cout<<a<<"個りんごがあります\n";
が記述されている場合は
自作関数は
void newmadefunction(int a){
cout<<a<<"個りんごがあります\n";
return ;
}
と記述します
(自作関数名は newmadefunction
である必要はなく自由につけることができます。)
つまり変数aが自作関数の定義内で使用されている場合は
そのaの変数宣言が行われている必要があるのですが
そのaの変数宣言が
自作関数 newmadefunctionの引数の()内に
newmadefunction(int a)
と記述されるわけです
自作関数の定義内に
cout<<a<<"個のりんごがあります\n";
の変数aのように
数値入力される変数が存在していない場合
void newmadefunction(){
cout<<"今日もよいC++言語日和です。\n";
return ;
}
👆このように自作関数を定義して
自作関数 newmadefunctionをmain関数内で呼び出して
使用するわけですが
そのときは
newmadefunction();
と記述します。
newmadefunction(void);
と記述してはいけません。
newmadefunction(void);
と記述すると
#include <iostream>
using namespace std;
void newmadefunction(void){
cout<<"今日もよいC++言語日和です。\n";
return ;
}
int main (){
newmadefunction(void);
return 0;
}
ビルド実行結果
エラー C2144 構文エラー: 'void' は ';' によって先行されなければなりません。
エラー C2144 構文エラー: 'void' は ')' によって先行されなければなりません。
エラー C2059 構文エラー: ')'
エラー (アクティブ) E0254 型名は使用できません
警告 C4091 '': 変数が何も宣言されていないときは、'void' の左辺を無視します。
と表示され
ビルド実行できません。
次に
自作関数の定義内で
cout<<a<<"個りんごがあります\n";
の変数aのように
数値を格納する変数が使用されている場合
👇
void newmadefunction(int a){
cout<<a<<"個のりんごがあります\n";
return ;
}
この自作関数newmadefunctionをmain関数内で呼び出して
使用するわけですが
そのときは
newmadefunction(1);
のように記述して
プログラムを構成します。
#include <iostream>
using namespace std;
void newmadefunction(int a) {
cout << a << "個のりんごがあります\n";
return;
}
int main() {
newmadefunction(1);
return 0;
}
ビルド実行結果
1個のりんごがあります
つまり
初期化されていない変数aに1を代入しているというわけです。
(int a=1;をおこなっているわけです。)
newmadefunction(1);
が実行されると
cout << a << "個のりんごがあります\n";
が実行されるのですが
このとき
1が変数aに代入されることになります
aの値は1になることにより
cout << a << "個のりんごがあります\n";
の
aに1が代入された
cout << 1 << "個のりんごがあります\n";
が実行されるので
コマンドプロンプト画面に
1個のりんごがあります
が表示されます。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます