Использование методов класса object (Объект) в классе Customer (Клиент)
Для иллюстрации описанных методов рассмотрим класс Customer (Клиент) до и после перегрузки методов Equals (Равняется), ToString и GetHashCode.
Стандартные методы класса object (Объект)
Если не произвести подмены виртуальных методов объекта Object (Объект), наш класс будет наследовать стандартное поведение. Это поведение продемонстрировано в CustomsrObjectXStepl.
//Customer.срр #using <mscorlib.dll> using namespace System; // использование пространства имен Система; #include "Customer.h" //Customer.h _gc class Customer // сборщик мусора – класс Клиент { public: int nCustomerld; String *pFirstName; String *pLastName; String *pEmailAddress; Customer(int id. String *pFirst, // Клиент (int идентификатор, // Строка *pFirst, String *pLast, String *eMail) { nCustomerld = id; // идентификатор pFirstName = pFirst; pLastName = pLast; pEmailAddress = eMail; // электронная почта } }; //TestCustomer.срр ftusing <mscorlib.dll> using namespace System; // использование пространства имен Система; #include "Customer.h" #include "TestCustomer.h" void main(void) { TestCustomer::Main(); // Главный } //TestCustomer.h _gc class TestCustomer // класс сборщика мусора TestCustomer { public: static void Main() // статическая Главная { Customer *pCustl, *pCust2; // Клиент pCustl = new Customer (// новый Клиент 99, "John", "Doe", "john@rocky.com"); // "Джон", "Доу" pCust2 = new Customer(// новый Клиент 99, "John", "Doe", "john@rocky.com"); // "Джон", "Доу" ShowCustomerObject("pCustl", pCustl); ShowCustomerObject("pCust2", pCust2); CompareCustomerObjects(pCustl, pCust2); } private: // частный static void ShowCustomerObject(String *pLabel, Customer *pCust) { Console::WriteLine("– {0} – ", pLabel); Console::WriteLine( "ToStringO = {0}", pCust › ToString()); Console::WriteLine( "GetHashCodeO = {0}", _box(pCust › GetHashCode())); Console::WriteLine( "GetTypeO = {0}", pCust › GetType ()); } static void CompareCustomerObjects(Customer *pCustl, Customer *pCust2) // Клиенты { Console::WriteLine( "Equals() = {0}", // Равняется _box(pCustl › Equals(// Равняется dynamic_cast<0b]ect _gc *>(pCust2)))); // сборщик // мусора } };