C++のreturn文で複数の戻り値を得る方法 【なんちゃって編】
概要
- iOSアプリ開発で使用されるSwiftは戻り値が複数指定できるなんて聞いたことが無いでしょうか?
- C++はできないとか言われていますね。
- でも、自前でなんちゃってで作れるんですよ。
- 今回はそれについて記事にします。
方法
準備
1. 自前のStructure(構造体)を作る。
2. 構造体のメンバ変数は、戻り値で必要なものにする。
簡単です。これだけです。
あとは、メソッドの戻り値を自前の構造体にするだけ。
こんな簡素な説明じゃわからないよって方に、サンプルソースを記載します。
サンプル
// 1. 自前のStructure(構造体)を作る。
typedef struct myresult {
// 2. 構造体のメンバ変数は、戻り値で必要なものにする。
std::wstring sString; // 文字列
int iValue; // 整数
double dValue // 小数点
} MyResult;
後は、適当に自分が使うメソッドの戻り値にこの構造体を設定するだけです。
class MyClass
{
public:
MyClass();
~MyClass();
MyResult MyMethod();
}
// ★戻り値の型が自前の構造体だよ。
MyResult MyClass::MyMethod()
{
// 何か処理をする
auto result = XXXXXXXX();
if(0 == result){
return { L"成功したよ~", 0, 0.0 };
}else{
return { L"残念でした", -1, 9.9 };
}
}
// Main関数
void main()
{
auto myclass = new MyClass();
auto myresult = myclass->MyMethod()
// これでなんちゃって複数戻り値を作れる。
printf("%s\n", myresult.sString().c_str());
printf("%d\n", myresult.iValue);
printf("%f\n", myresult.dValue);
delete myclass;
}
Author And Source
この問題について(C++のreturn文で複数の戻り値を得る方法 【なんちゃって編】), 我々は、より多くの情報をここで見つけました https://qiita.com/pua/items/fdd6ee470379ff5169c8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .