次のコードを使用して、長方形の面積と周囲長を計算したいと思います。
rect a;
a = ( -----
! !
-----a );
std::cout << a.area() << std::endl;
std::cout << a.perimeter() << std::endl;
この目的のために、私は次のクラスを作成しました。
class rect
{
public:
rect():w(0), h(2) {}
rect& operator - () { w += 0.5f; return *this; }
rect& operator - (rect&) { w += 0.5f; return *this; }
rect& operator -- (int a) { w += a; return *this; }
rect& operator -- () { w += 1; return *this; }
rect& operator ! () { h += 0.5f; return *this; }
void clear() { w = 0; h = 2; }
int area() { return w * h; }
int perimeter() { return 2 * w + 2 * h; }
int width() { return w; }
int height() { return h; }
private:
float w;
float h;
};
いくつかの使用例を次に示します。
#include <iostream>
int main()
{
rect a;
a = ( -----
! !
-----a );
std::cout << a.area() << std::endl;
std::cout << a.perimeter() << std::endl;
std::cout << a.width() << std::endl;
std::cout << a.height() << std::endl;
std::cout << std::endl;
a.clear();
a = ( ----------
! !
! !
! !
! !
---------a );
std::cout << a.area() << std::endl;
std::cout << a.perimeter() << std::endl;
std::cout << a.width() << std::endl;
std::cout << a.height() << std::endl;
return 0;
}
これが私の質問です:
- 浮動小数点演算を使用せずに実行できますか? (実際、それは整数グリッドです)
3Dケースで一般化できますか?すなわち:
cuboid b; b = ( --------- / /! ! -------! ! ! ! ! ! ! ! ! !/ ---------b ); std::cout << b.volume() << std::endl;