• Некорректное вычисление?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    выдают одинаково верный результат

    одинаково верный результат для java, потому что порядок вычисления значения выражений в java определён строго для любого выражения, см. https://docs.oracle.com/javase/specs/jls/se7/html/...

    С++ -- это другой язык, на нём можно написать выражение вроде вашего, значение которого не определено стандартом и может варьироваться в зависимости от компилятора, опций оптимизации и фазы луны. См. https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%87%D...
    Ответ написан
    Комментировать
  • Некорректное вычисление?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Для C++ такая конструкция нарушает стандарт языка и приводит к неопределенному поведению. На C++ так писать нельзя.
    Ответ написан
  • Как можно передавать в метод объекты разных классов?

    @zelan
    Кратко обо мне не получится.
    Те объекты которые ты хочешь передавать - должны ли они по логике твоей программы иметь общие методы (чтобы воспользоваться ТОЛЬКО ими в методе, в который ты передаешь объект) или ты хочешь передавать совершенно разные объекты?
    Update:
    смотри, есть такая штука как интерфейс

    Например есть 2 класса Cat и Dog. И есть действия которые и тот и другой обязаны делать (по разному) но с определенным результатом. Например это действие - поедание котлет, при этом если есть результат (то он должен быть единообразным) или его быть не должно вовсе (void). Таким образом классы должны выглядеть примерно так (опуская другие вещи)

    class Cat{
     public int eatBeaf(int weight){ 
      //тут описываем съедение
      
      return result; //результат - продукт переработки котлет
     }
    }
    
    class Dog{
     public int eatBeaf(int weight){ 
      //тут описываем съедение
      
      return result; //результат - продукт переработки котлет
     }
    }


    И допустим у тебя есть Бабуля, которой ты передаешь животное на выходные и она должна будет их кормить периодически. Согласись - бабуле пофигу кто будет пожирать котлеты, она не хочет кормить их по разному, ей важно только то, что бы они ели котлеты и она убирала продукты пищеварения.

    Соответственно иметь 2 метода у бабули не хочется:
    class GrandMa{
     public void feedCat(Cat cat){}
     public void feedDog(Dog dog){}
    }


    Вот тут и появляются интерфейсы. Мы видим, что и кот и пес жрут котлеты. Давай скажем что они как животные должны их (котлеты) поедать - это интерфейс.

    interface BeafEater{
      int eatBeaf(int weight);
     }
    //и скажем что и кот и пес - пожиратели котлет и они умеют их есть
    
    class Cat implements BeafEater{
     public int eatBeaf(int weight){ 
      //тут описываем съедение
      
      return result; //результат - продукт переработки котлет
     }
    }
    
    class Dog implements BeafEater{
     public int eatBeaf(int weight){ 
      //тут описываем съедение
      
      return result; //результат - продукт переработки котлет
     }
    }


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

    class GrandMa{
     public void feedBeafEater(BeafEater BeafEater){
       int weightBeaf = 5;
       int shit = beafEater.eatBeaf(weightBeaf ); //кормим поедателя котлет, колучаем какахи
       cleanToilet(shit ); //бабушка убирает какахи
    }
    
    }


    Все, просто передаешь в бабушке кота или пса и она их кормит

    public static void main(String[] args){
    
     GrandMa grandMa = new GrandMa();
     Cat cat = new Cat();
     Dog dog = new Dog;
     
    //напоминаю и кот и пес - рассматриваются бабушкой как пожиратели котлет, ей важно чтобы они поодерживали определенный интерфейс (умели делать определенные вещи)
    grandMa.feedBeafEater(cat);
    grandMa.feedBeafEater(dog);
    
    }
    Ответ написан
    3 комментария
  • Возможны ли автоподсказки по такому коду?

    maaGames
    @maaGames
    Погроммирую программы
    MSVC + Whole Tomato. Справляется практически с хоть чем. Чем новее MSVC тем с большим количеством ситуаций лучше справляется автоподсказка и прочие полезности.

    16b0fa185f36409fa0ad69bbfe5d3db3.pngb781dc3bbe504c51a6ef6c10a316b554.png
    Ответ написан
    3 комментария