Sam*_*Sam 6 c++ casting intrinsics
基本的C++类问题:
我目前有简单的代码,看起来像这样:
typedef int sType;
int array[100];
int test(sType s)
{
return array[ (int)s ];
}
Run Code Online (Sandbox Code Playgroud)
我想要的是将"sType"转换为类,这样就不需要改变"return array [(int)s]"行.例如(伪代码)
class sType
{
public:
int castInt()
{
return val;
}
int val;
}
int array[100];
int test(sType s)
{
return array[ (int)s ];
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
class sType
{
public:
operator int() const { return val; }
private:
int val;
};
Run Code Online (Sandbox Code Playgroud)
class sType
{
public:
operator int() const
{
return val;
}
int val;
};
Run Code Online (Sandbox Code Playgroud)
要使s = 5工作,请提供一个带int的构造函数:
class sType
{
public:
sType (int n ) : val( n ) {
}
operator int() const
{
return val;
}
int val;
};
Run Code Online (Sandbox Code Playgroud)
然后,只要需要将sType转换为int,编译器就会使用该构造函数.
归档时间: |
|
查看次数: |
5541 次 |
最近记录: |