В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.
Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.
Оператор
==
проверяет, являются ли две строки точно одним и тем же объектом.Метод
blockquote>.equals()
проверяет, имеют ли две строки одно и то же значение.
В классах C ++ есть функция ввода их имени в свою область действия ( [класс] / 2 ):
Имя класса также вставляется в объем самого класса; это известно как имя введенного класса . Для проверки доступа имя введенного класса рассматривается так, как если бы это было публичное имя участника.
. В приведенном фрагменте кода используется Это. В определенных контекстах
Commitment::Commitment
называет сам класс, а в других - c'tor. Только последнийCommitment(
, где вы открываете круглые скобки, начинается определение c'tor.И это может выглядеть намного хуже:
struct foo { foo(); }; foo::foo::foo::foo() = default;
Который вы можете видеть действительный C ++ Live .