\b;Инструкция \c;this\n; Иногда, методы \l;класса\u cbot\class; должны знать ссылку уже действующего экземпляра. Например, экземпляр, возможно, захочет передать свои ссылки другой функции. Неявное имя ссылки \c;this\n; доступно для методов, а также \c;this\n; это ссылка на текущий экземпляр. \c; \s;public class MyClass \s;{ \s; int m_int; \s; string m_str; \s; void MyFunction() \s; { \s; OtherFunction(this); \s; m_int = 2; \s; } \s;} \s; \s;void OtherFunction(MyClass obj) \s;{ \s; message(obj.m_str); \s;} \s; \s;extern void object::Test() \s;{ \s; MyClass item(); \s; item.m_str = "Hello"; \s; item.MyFunction(); // вывести "Hello" \s;} \n; Вы можете написать \c;this\n; перед методом, но в этом нет необходимости. В приведенном ниже примере мы видим две строго одинаковых строки: \c; \s; m_int = 2; \s; this.m_int = 2; // они идентичны \n; В методе класса \c;\l;object\u cbot\object;\n;, вы можете использовать \c;this.\n; перед именем поля. \c; \s;extern void object::Display() \s;{ \s; message(orientation); \s; message(this.orientation); // тоже самое, но \s; // более четко \s;} \n; Однако, если имя поля неизвестно, то объявление параметра или переменной необходимо использовать вместе с \c;this\n;. В следущем примере имя параметра \c;value\n; такое же, как и имя поля \c;value\n; \l;класса\u cbot\class; \c;MyClass\n;, поэтому мы должны написать \c;this.value\n; для того, чтобы отличить поле от параметра. \c; \s;public class MyClass \s;{ \s; int value; \s; void Put( int value ) \s; { \s; this.value = value; \s; } \s;} \n; \t;См. также \c;\l;class\u cbot\class;\n; \l;Программирование\u cbot;, \l:типы\u cbot\type; и \l;категории\u cbot\category;.