C ++でリターンなし(関数は無効)の個別のコンパイルを書くことについて考えている

戻り値のない関数定義の場合、元のパラメーターに影響を与える必要があるため、参照reference)を使用する必要があります。それ以外の場合、戻り値がないため、結果はMainに適用されません。

これは演習6.13で述べたとおりです。前者は実際のパラメータを変更できませんが、後者は変更できます。

以下はC ++ Primer Exercise 6.11のトピックです(クラス:[C ++ Primer(5th Edition)Exercise]演習プログラム-第6章(第6章)演習6.17(b))


ヘッダーファイル

  • Reset.h
#ifndef RESET_H
#define RESET_H
#include <string>
void reset_string(std::string &content);
void reset_char(char &content);
void reset_int(int &content);
void reset_long(long &content);
void reset_double(double &content);
#endif // !RESET_H

ソースファイル

  • Reset_Def.cpp
#include <string>
#include "Reset.h"

void reset_string(std::string &content)
{
    
    
	content = "";
}
void reset_char(char &content)
{
    
    
	content = '\0';
}
void reset_int(int &content)
{
    
    
	content = 0;
}
void reset_long(long &content)
{
    
    
	content = 0;
}
void reset_double(double &content)
{
    
    
	content = 0;
}
  • Reset_Main.cpp
#include <iostream>
#include <string>
#include "Reset.h"
using namespace std;

int main()
{
    
    
	int i = 2;
	char j = 't';
	string k = "teddy";
	double l = 3.14;
	long t = pow(2, 30);
	cout << i << "/" << j << "/" << k << "/" << l << "/" << t << endl;
	reset_int(i);
	reset_char(j);
	reset_string(k);
	reset_double(l);
	reset_long(t);
	cout << i << "/" << j << "/" << k << "/" << l << "/" << t << endl;
	return 0;
}

出力
出力


次の手順職務を遂行する

  • Reset.h:ステートメント関数
  • Reset_Def.cpp:定義関数
  • Reset_Main.cpp:メインプログラム

こちらもご覧ください

Teddy van Jerryのナビゲーションページ
[メモ]
C ++ での個別コンパイルのアイデア[C ++入門(第5版)演習]演習プログラム-第6章(第6章)
C ++で定義された関数の影響に関する考察

おすすめ

転載: blog.csdn.net/weixin_50012998/article/details/108305783