#include <xtd/console>
public:
int x, y;
point(int x, int y) : x {x}, y {y} {}
bool equals(const object& obj) const noexcept override {
if (obj.
get_type() != get_type())
return false;
auto& other = static_cast<const point&>(obj);
return x == other.x && y == other.y;
}
size_t get_hash_code() const noexcept override {
return x ^ y;
}
string to_string() const noexcept override {
return string::format("({}, {})", x, y);
}
return memberwise_clone<point>();
}
};
auto main() -> int {
auto p1 = point {1, 2};
auto p2 = p1.copy();
auto& p3 = p1;
console::write_line(object::reference_equals(p1, *p2));
console::write_line(object::equals(p1, *p2));
console::write_line(object::reference_equals(p1, p3));
console::write_line("p1's value is: {}", p1.to_string());
}
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:42
virtual type_object get_type() const noexcept
Gets the type of the current instance.
std::unique_ptr< type_t > uptr
The xtd::uptr object is a unique pointer.
Definition uptr.h:25
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10