оператор ostream << не выполняется - PullRequest
0 голосов
/ 03 февраля 2012

Итак, я написал этот код сам, но взят из других примеров кодов ...

class A{
    friend std::ostream& operator<< (std::ostream& out, A& a);
    // Constructors, destructor, and variables have been declared
    // and initialized and all good.
}

std::ostream& operator<< (std::ostream& out, A& a){
    out << " this gets written " << endl; // it doesn't get executed
    return out;
}

int main(){
    A *_a = new A();
    return 0;
}

И, ну, это просто не вывод на печать в консоли " this gets written "

1 Ответ

1 голос
/ 03 февраля 2012

Если вы пытаетесь использовать оператор через std::cout << a или что-то подобное, проблема заключается в том, что вы передаете указатель объекту, в то время как оператор << определяется как получение ссылка на объект. Вам либо нужно объявить a как обычный (без указателя) A, либо использовать std::cout << *a.

...