掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24354

省略引数の書き方
投稿者---だん(2005/11/25 09:33:55)


最近VBからVC++へ移行したものです。

VBでは関数で
Sub aaa(Optional a = 0)
と書くだけで省略引数を書くことができ
Call aaa
Call a(1)
と呼ぶことができますが、

C++言語では、どのようにするのでしょうか
関数の
・プロトタイプの方法
・関数の実体
の書き方を
お教えください。

環境はWinXPSP2、VC++6.0です


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:省略引数の書き方 24355 RAPT 2005/11/25 09:48:00
<子記事> Re:省略引数の書き方 24356 円零 2005/11/25 10:32:39


No.24355

Re:省略引数の書き方
投稿者---RAPT(2005/11/25 09:48:00)


VBでは関数で Sub aaa(Optional a = 0) と書くだけで省略引数を書くことができ Call aaa Call a(1) と呼ぶことができますが、
C++言語では、関数呼び出し時の()は省略できません。 関数宣言: void abc(int a = 0); 関数定義 void abc(int a) { // 何か処理 } 関数利用 abc(100); // 引数明示 abc(); // 引数省略 なお、関数宣言同時定義の場合、 void abc(int a = 0) { // 何か処理 } と書けます。



この投稿にコメントする

削除パスワード

No.24364

Re:省略引数の書き方
投稿者---wiz(2005/11/26 00:27:00)


VBでは引数の間を省略することも可能ですがC++では呼び出し時
引数の間を省略することはできません。
Sub Sub(ByVal w As Integer, Optional ByVal x As Integer = 2, Optional ByVal y As Integer = 1 )
Sub Main()
    '呼び出し可能
    SubProcedure( 5, ,10 )
End Sub

void sub( int a, int b = 2, int c = 1 );
main()
{
    //構文エラー
    sub( 0, ,2 );
    return 0;
}
void sub( int a, int b, int c )
{
    //処理
}

またC++ではデフォルト引数を書くとき
デフォルト引数以降にデフォルトを持たない引数を定義すると
エラーになります。

void sub( int a, int b = 2, int c );

これはエラーになります。




この投稿にコメントする

削除パスワード

No.24356

Re:省略引数の書き方
投稿者---円零(2005/11/25 10:32:39)


なんか説明が舌足らずな感じを受けますね。

Optionalキーワードってのは、
Public Function MyFunc(A As Integer, Optional B As Integer = 1) As Integer
のような関数があったときに、
X = MyFunc(0, 1)
のように呼んでも、
X = MyFunc(0)
のように呼んでも良い、という仕様でしょう。

C言語にも可変個の引数を取る方法はあります。
int func(int a, ...);
のように宣言して、va_list型へのポインタを使ってアクセスするんですが、
正直ちょっとめんどくさくいです。


この投稿にコメントする

削除パスワード

No.24357

Re:省略引数の書き方
投稿者---nop(2005/11/25 11:55:57)


>C言語にも可変個の引数を取る方法はあります。
>int func(int a, ...);
>のように宣言して、va_list型へのポインタを使ってアクセスするんですが、
>正直ちょっとめんどくさくいです。

引数の省略と、可変個引数は別物だと思います。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧