C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: C++/CLI でのデフォルト引数について


(過去ログ 42 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■22011 / inTopicNo.1)  C++/CLI でのデフォルト引数について
  
□投稿者/ 雲 (2回)-(2008/07/15(Tue) 05:37:13)

分類:[C++/CLI] 

こんにちは。
最近、C++/CLI のお勉強に C# のコードを移植していて、詰まってしまいました。
C# には、デフォルト引数はないのですが、

class AAA{
AAA( int d ){

}
AAA() : this( 0 ){}
}

みたいな書き方をすると、一応、C++ のデフォルト引数っぽいことが出来ます。

で、これを、C++/CLI へ移植しようとしたのですが、どうやってもコンパイルエラーを
避けられません。

public ref class BBB{
public:
BBB( int d = 0){};
};

かと思ってやってみましたが、ダメ。

public ref class BBB{
public:
BBB( int d);
BBB( int d) : BBB( 0 ){}; ← ダメ。
BBB( int d) : this( 0 ){}; ← ダメ。
};

素直に、メンバ関数を準備してそこを呼び出すようにすれば、いけるのかも
しれないですが、何か、C# に負けている気がしてしょうがないです。

C++/CLI はデフォルト引数的なことは、出来ないのでしょうか?
もしそうなら、C++派の僕としては、結構ショックかも。

引用返信 編集キー/
■22012 / inTopicNo.2)  Re[1]: C++/CLI でのデフォルト引数について
□投稿者/ επιστημη (1139回)-(2008/07/15(Tue) 06:36:32)
επιστημη さんの Web サイト
> C++/CLI はデフォルト引数的なことは、出来ないのでしょうか?

??? ここで挙げられているのはデフォルト引数云々じゃなくて、
コンストラクタから他のコンストラクタが呼べるか否かの差じゃねぇですか?

引用返信 編集キー/
■22130 / inTopicNo.3)  Re[2]: C++/CLI でのデフォルト引数について
□投稿者/ 雲 (3回)-(2008/07/15(Tue) 22:58:17)
επιστημη さん。
こんばんわ。

> ??? ここで挙げられているのはデフォルト引数云々じゃなくて、
> コンストラクタから他のコンストラクタが呼べるか否かの差じゃねぇですか?

すみません。少し、例が良くなかったです。

C++/CLI には、デフォルト引数が無いということは、コンパイラの警告からわかったので、
何か、抜け道は無いのかな?と思って質問してみました(C# には逃げ道があるので)。

ただ、その時に例を出したのが、コンストラクタから別のコンストラクタが呼べるのか?
と受け取られてしまう例を出したのがダメでしたね。

正確に書くとすると、コンストラクタとメンバー関数で、デフォルト引数と同じような
働きをする書き方って C++/CLI にあるのでしょうか?ということになりますか?

自分なりに調べた結果では、少なくともコンストラクタから別のコンストラクタを呼び出す
方法はなさそう。と言う結論になっています。

例えばここ↓
http://forums.msdn.microsoft.com/ja-JP/vclanguage/thread/acc82fda-3ebd-4746-985f-fbf69bca8977/

でもね。まさか、C++/CLI で C# に負けているように思えるのは、少し、悔しいです。
(調べ方が悪いってこともあるかも知れませんが。。。)

引用返信 編集キー/
■22131 / inTopicNo.4)  Re[3]: C++/CLI でのデフォルト引数について
□投稿者/ επιστημη (1150回)-(2008/07/15(Tue) 23:04:34)
επιστημη さんの Web サイト
> 正確に書くとすると、コンストラクタとメンバー関数で、デフォルト引数と同じような
> 働きをする書き方って C++/CLI にあるのでしょうか?ということになりますか?

コンストラクタは無理ポいですが、

void f(int n=1) は

void f(int n) { ... }
void f() { f(1); }

て書きゃいーです。

引用返信 編集キー/
■22132 / inTopicNo.5)  Re[4]: C++/CLI でのデフォルト引数について
□投稿者/ 雲 (4回)-(2008/07/15(Tue) 23:17:23)
夜討ち朝駆けでのご回答、ありがとうございます。
メンバ関数の逃げ方は知りませんでした。

> コンストラクタは無理ポいですが、

ただ、コンストラクタは無理っぽいってところは、少し、残念に思えます。
ので、ここは、Microsoft に頑張って頂きたいところです。

期待して待ってます > Microsoft.



引用返信 編集キー/
■22135 / inTopicNo.6)  Re[5]: C++/CLI でのデフォルト引数について
□投稿者/ Azulean (166回)-(2008/07/15(Tue) 23:29:13)
> 期待して待ってます > Microsoft.
ここで言うに留めずに、要望はフィードバックに出しましょう。
https://connect.microsoft.com/VisualStudioJapan/

直接出すのが嫌だとか、議論をしたいというのであれば、MSDNフォーラム内のフィードバックフォーラムでも。
http://forums.microsoft.com/MSDN-JA/ShowForum.aspx?ForumID=183&SiteID=7

> でもね。まさか、C++/CLI で C# に負けているように思えるのは、少し、悔しいです。
言語同士って局所的に比較してもいけないかなぁと思います。
勝ち負けなんていうよりは、どのように工夫するかとか、使いやすい言語に移るとか色々と広げていきましょう。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -