Clang CMAKE Предварительно скомпилированные заголовки

== оператор всегда ссылается на ссылку. Но в случае

метод equals ()

это зависит от реализации, если мы переопределены равным методу, чем сравниваем объект с базой реализации, указанной в переопределенном метод.

 class A
 {
   int id;
   String str;

     public A(int id,String str)
     {
       this.id=id;
       this.str=str;
     }

    public static void main(String arg[])
    {
      A obj=new A(101,"sam");
      A obj1=new A(101,"sam");

      obj.equals(obj1)//fasle
      obj==obj1 // fasle
    }
 }

в приведенном выше коде оба объекта obj и obj1 содержат одни и те же данные, но ссылка не такая же, как и return false и ==. но если мы переопределили метод equals, чем

 class A
 {
   int id;
   String str;

     public A(int id,String str)
     {
       this.id=id;
       this.str=str;
     }
    public boolean equals(Object obj)
    {
       A a1=(A)obj;
      return this.id==a1.id;
    }

    public static void main(String arg[])
    {
      A obj=new A(101,"sam");
      A obj1=new A(101,"sam");

      obj.equals(obj1)//true
      obj==obj1 // fasle
    }
 }

, узнайте, что он вернет true и false для одного и того же случая, только мы переопределили

equals method.

< / blockquote>

сравнивает объект с базой содержимого (id) объекта

, но ==

все еще сравнивает ссылки объекта.

1
задан Braden Edmunds 15 January 2019 в 20:02
поделиться

1 ответ

Нашел решение, которое сработало для меня:

# add the pch custom target as a dependency
add_dependencies(corelib pch)

# add the flag
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include-pch ${CMAKE_CURRENT_BINARY_DIR}/stdinc.hpp.pch")

# target
add_custom_target(pch COMMAND clang -x c++-header ${CMAKE_CURRENT_SOURCE_DIR}/src/stdinc.hpp -o ${CMAKE_CURRENT_BINARY_DIR}/stdinc.hpp.pch)
0
ответ дан Braden Edmunds 15 January 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: