C ++/Cのメソッド/関数センチネルのようなものはありますか?
-
29-09-2019 - |
質問
Objective-Cでは、次のようなことを言うことができます。
NSArray *anArray = [NSArray arrayWithObjects:obj,obj2, nil];
Objective-Cに精通していない場合に備えて、NSARRAY、ANARRAYのタイプのオブジェクトが必要であり、メソッドArrayWithObjectsを呼び出したいと言っています。オブジェクト)nilに達するまで。
このようなことを達成する方法はありますか:
createObjects(o1,o2,o3,o4,-1);
機能方法は、キー値に達するまで多くのパラメーターを受け入れることができますか?
今、私はあなたがCとC ++でSentinelのことをすることができることを知っていますが、Objective-Cで行うような方法にこのようなものを提供する方法はありますか?
解決
あなたは書くことができます バリアード関数 そして、センチネルを使用して、最後の実際の議論を見つけます。
ただし、C ++では、バリアード機能はタイプの安全ではないため、これは通常悪い考えです。 C ++では、ある種のコンテナ、アレイ、またはクラスオブジェクトに渡す要素を配置し、それを関数に渡すことが好ましいです。エラーが発生しやすく、確認がはるかに簡単です。
他のヒント
あなたが探しているのはそうだと思います varargs.
所属していません StackOverflow