Ответы пользователя по тегу Google Plus
  • С++. Зависимость возвращаемого функцией типа от значения ее параметра?

    burdakovd
    @burdakovd
    Определитесь, вызывающая сторона будет знать на этапе компиляции объект какого типа ей нужно получить?

    Если будет, то сделайте переключающий параметр параметром шаблона, как предлагал .

    Если не будет, то можно сделать чтобы типы A и B реализовывали общий интерфейс I. В интерфейсе описать все методы, которые вызывающая сторона требует от этих типов.
    И возвращать из функции указатель на I.

    Типа
    class I {
        // interface
        // ...
        virtual ~I() {}
    };
    
    class A: public I { ... }
    class B: public I { ... }
    
    I* foo(const int sw) {
        return sw == 0 ? new A(...) : new B(...);
    }
    
    


    Разумеется можно возвращать не сырой указатель, а unique_ptr
    Ответ написан
    Комментировать