我想编写函数接口,强制用户承认内置常量的语义.例如,我想采取
void rotate(float angle); // Rotate the world by an angle in radians.
Run Code Online (Sandbox Code Playgroud)
并将其更改为
void rotate(Radians angle);
Run Code Online (Sandbox Code Playgroud)
我是否正确地相信制作Radians类的问题在于它会增加代码并使程序变慢.有一个更好的方法吗?
是否可以创建一个类型(比如说degrees)并为它定义特定的运算符?如:=, +, *, -, /, +=, *=, -=, /=.
我想知道这是因为我需要为我的一个程序使用度数而我不想使用一个float对象,因为使用它degrees a; a.value = 120; a.value = b.value + a.value;是一个简单的冗余degrees a = 120; a = b+a;.
现在我为什么不使用:
typedef float degrees;
Run Code Online (Sandbox Code Playgroud)
?好吧,因为我还需要一件事.当我写作
degrees a;
a = 120;
a += 300;
Run Code Online (Sandbox Code Playgroud)
a应该等于60(420-360),因为我真的不需要a = 6150什么时候能有a = 30相同的效果.所以我会重载这些运算符以保持0到360之间的值.
可能吗?如果是这样,怎么样?