<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=Cpp_%E5%BC%95%E6%95%B0%E8%A6%8F%E5%AE%9A%E5%80%A4</id>
	<title>Cpp 引数規定値 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=Cpp_%E5%BC%95%E6%95%B0%E8%A6%8F%E5%AE%9A%E5%80%A4"/>
	<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=Cpp_%E5%BC%95%E6%95%B0%E8%A6%8F%E5%AE%9A%E5%80%A4&amp;action=history"/>
	<updated>2026-04-05T16:57:23Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=Cpp_%E5%BC%95%E6%95%B0%E8%A6%8F%E5%AE%9A%E5%80%A4&amp;diff=94&amp;oldid=prev</id>
		<title>Yo-net: ページの作成:「C++に戻る   &lt;table class=&quot;mbox-small&quot; style=&quot;border:1px solid #aaa; background-color:#f9f9f9; width:22em;&quot; id=&quot;RealTitleBanner&quot;&gt; &lt;tr&gt; &lt;td style=&quot;width:1px;&quot;&gt;&lt;/td&gt; &lt;td class=&quot;mbox-text plainlist&quot; style=&quot;&quot;&gt;本来の表記は「&lt;b&gt;&lt;span id=&quot;RealTitle&quot; style=&quot;font-size:large;&quot;&gt;C++(Cpp) 引数規定値&lt;/span&gt;&lt;/b&gt;」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。&lt;/t…」</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=Cpp_%E5%BC%95%E6%95%B0%E8%A6%8F%E5%AE%9A%E5%80%A4&amp;diff=94&amp;oldid=prev"/>
		<updated>2022-09-26T02:04:23Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「&lt;a href=&quot;/C_PlusPlus#C++からの技術&quot; title=&quot;C PlusPlus&quot;&gt;C++&lt;/a&gt;に戻る   &amp;lt;table class=&amp;quot;mbox-small&amp;quot; style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; width:22em;&amp;quot; id=&amp;quot;RealTitleBanner&amp;quot;&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;width:1px;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td class=&amp;quot;mbox-text plainlist&amp;quot; style=&amp;quot;&amp;quot;&amp;gt;本来の表記は「&amp;lt;b&amp;gt;&amp;lt;span id=&amp;quot;RealTitle&amp;quot; style=&amp;quot;font-size:large;&amp;quot;&amp;gt;C++(Cpp) 引数規定値&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。&amp;lt;/t…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[C PlusPlus#C++からの技術|C++]]に戻る&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;mbox-small&amp;quot; style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; width:22em;&amp;quot; id=&amp;quot;RealTitleBanner&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:1px;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;mbox-text plainlist&amp;quot; style=&amp;quot;&amp;quot;&amp;gt;本来の表記は「&amp;lt;b&amp;gt;&amp;lt;span id=&amp;quot;RealTitle&amp;quot; style=&amp;quot;font-size:large;&amp;quot;&amp;gt;C++(Cpp) 引数規定値&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
※このページでは[[C PlusPlus|C++]]にのみ存在する機能として、記事タイトルが&amp;lt;nowiki&amp;gt;C++ 引数規定値&amp;lt;/nowiki&amp;gt;になっています。&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== '''引数規定値''' ==&lt;br /&gt;
&lt;br /&gt;
関数やクラスの引数は、呼び出し時に引数が不足するとエラーになりますが、引数が指定されていない場合の初期値を関数やクラス側で設定しておくことができます。初期値があたえられている関数やクラスであれば、その分だけ引数を省略することができます。複数の引数がある場合、複数の引数に初期値を与えることが出来て、一部の引数だけは初期値を与えずに呼び出し側で、引数を必須とすることが出来ます。但し、引数に規定値がないものとあるものを混同させ、引数が省略できる場合でも、省略できる引数は引数の順番の後ろにまとめる必要があります。これは、引数順序の途中に省略できる引数が指定されても、どの引数が省略されたか判別できないことからも後尾でないと引数の対応がとれないことからも容易に想像できると思います。規定値のことを英語でDefaultと言う事から、デフォルト引数とも呼びます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
例1 引数省略関数&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void Function(int nRate = 100){&lt;br /&gt;
  …&lt;br /&gt;
}&lt;br /&gt;
int _tmain(int argc, _TCHAR* argv[]){&lt;br /&gt;
  Function();//省略すると引数規定値で設定されている値が使われる&lt;br /&gt;
  Function(99);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
例2 引数省略関数 宣言部での規定値設定&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void Function(int nRate = 100);&lt;br /&gt;
void Function(int nRate){&lt;br /&gt;
  …&lt;br /&gt;
}&lt;br /&gt;
int _tmain(argv[]){&lt;br /&gt;
  Function();//省略すると引数規定値で設定されている値が使われる&lt;br /&gt;
  Function(99);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
例3 引数省略関数 宣言部での規定値設定 ファイルが分かれているパターン&lt;br /&gt;
&lt;br /&gt;
Function.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void Function(int nRate = 100);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Function.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;Function.h&amp;quot;&lt;br /&gt;
void Function(int nRate){&lt;br /&gt;
  …&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
DefaultParamSample.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;Function.h&amp;quot;&lt;br /&gt;
int _tmain(int argc, _TCHAR* argv[]){&lt;br /&gt;
  Function();//省略すると引数規定値で設定されている値が使われる&lt;br /&gt;
  Function(99);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
宣言部でも定義部でもどちらでも引数規定値(デフォルト引数)が利用できますが、どちらかひとつでしか引数の設定はできません。たとえ同じ値を書いていたとしてもコンパイルエラーになります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
例4 引数省略クラス 宣言部での規定値設定 ファイルが分かれているパターン&lt;br /&gt;
&lt;br /&gt;
DefaultParam.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
class CDefaultParam{&lt;br /&gt;
  CDefaultParam(int nRate=100);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
DefaultParam.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;DefaultParam.h&amp;quot;&lt;br /&gt;
CDefaultParam::CDefaultParam(int nRate){&lt;br /&gt;
  …&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
DefaultParamSample.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;DefaultParam.h&amp;quot;&lt;br /&gt;
int _tmain(int argc, _TCHAR* argv[]){&lt;br /&gt;
  CDefaultParam cdefaultparamInst();//省略すると引数規定値で設定されている値がコンストラクタで使われる&lt;br /&gt;
  CDefaultParam cdefaultparamInst(99);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C PlusPlus#C++からの技術|C++]]に戻る&lt;/div&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
</feed>