C ++クラスを内因性タイプにどのように鋳造するか
-
11-10-2019 - |
質問
基本的なC ++クラスの質問:
私は現在、このようなもののような単純なコードを持っています:
typedef int sType;
int array[100];
int test(sType s)
{
return array[ (int)s ];
}
私が望んでいるのは、「Stype」をクラスに変換することです。そのため、「return array [(int)]」行を変更する必要はありません。 EG(pseudocode)
class sType
{
public:
int castInt()
{
return val;
}
int val;
}
int array[100];
int test(sType s)
{
return array[ (int)s ];
}
助けてくれてありがとう。
解決
class sType
{
public:
operator int() const { return val; }
private:
int val;
};
他のヒント
class sType
{
public:
operator int() const
{
return val;
}
int val;
};
s = 5の作業を行うには、intを取るコンストラクターを提供します。
class sType
{
public:
sType (int n ) : val( n ) {
}
operator int() const
{
return val;
}
int val;
};
その後、コンパイラは、スタイプをINTに変換する必要があるときはいつでもそのコンストラクターを使用します。
所属していません StackOverflow