Поделиться через


Практическое руководство. Проверка на равенство.

Обновлен: Ноябрь 2007

В приведенном ниже примере проверка на равенство с использованием управляемых расширений для C++ основана на объектах, на которые указывают указатели.

Дополнительные сведения см. в разделе Критические изменения в компиляторе Visual C++ 2005.

Пример

// mcppv2_equality_test.cpp
// compile with: /clr:oldSyntax /LD
using namespace System;

bool Test1() {
   String * str1 = S"test";
   String * str2 = S"test";
   return (str1 == str2);
}

Код промежуточного языка для этой программы показывает, что возвращаемое значение реализуется с помощью следующей инструкции:

  IL_0012:  ceq

которая сравнивает адреса двух строковых объектов.

Использование нового синтаксиса

// mcppv2_equality_test_2.cpp
// compile with: /clr /LD
using namespace System;

bool Test1() {
   String ^ str1 = "test";
   String ^ str2 = "test";
   return (str1 == str2);
}

Код промежуточного языка для этой программы показывает, что возвращаемое значение реализуется с помощью вызова функции op_Equality.

  IL_0012:  call       bool [mscorlib]System.String::op_Equality(string,
                                                                 string)

См. также

Другие ресурсы

Управляемые типы