LINUX.ORG.RU

История изменений

Исправление m0rph, (текущая версия) :

Недочитал твое сообщение. Вообще можно конечно сделать что-то похожее, только это какое-то непонятно зачем нужное извращение:

#include <iostream>

class Bar {
public:
    Bar(int value) :
        value_(value)
    {
    }

    int f() const
    {
        return value_;
    }

private:
    int value_;
};

class Foo {
public:
    Foo(int value)
    {
    }

    Bar operator()(int value) const
    {
        return Bar(value);
    }
};

int main()
{
    Bar bar = Foo(30)(20);
    std::cout << bar.f() << std::endl;
    return 0;
}

Исходная версия m0rph, :

Недочитал твое сообщение. Вообще можно конечно сделать что-то похожее, только это какое-то непонятно зачем нужное извращение:

#include <iostream>[br][br]class Bar {[br]public:[br]    Bar(int value) :[br]        value_(value)[br]    {[br]    }[br][br]    int f() const[br]    {[br]        return value_;[br]    }[br][br]private:[br]    int value_;[br]};[br][br]class Foo {[br]public:[br]    Foo(int value)[br]    {[br]    }[br][br]    Bar operator()(int value) const[br]    {[br]        return Bar(value);[br]    }[br]};[br][br]int main()[br]{[br]    Bar bar = Foo(30)(20);[br]    std::cout << bar.f() << std::endl;[br]    return 0;[br]}[br]