Как правильно перегрузить printf для вывода значения из класса c ++ - PullRequest
0 голосов
/ 10 октября 2018

Есть ли способ использовать printf для вывода значения класса?

class example
{
public:
    int x;
    example(int in) : x(in) {}
}

void printf(example object)
{
    printf(object.x);
}

Есть ли способ сделать это правильно?Когда я это делаю, я получаю ошибку сегментации, но когда я использую «example & object», он говорит:

error: не может связать неконстантную ссылку lvalue типа 'object &' с rvalue 'object '

И когда я помещаю "const example & object", он говорит:

Передача "const example" в качестве аргумента "this" отбрасывает квалификаторы

примечание: я уже сделал std :: cout (перегрузка оператора <<), и он работает, но я просто хочу попробовать использовать printf </p>

Я также попытался заставить его выполнить

std::cout<<object.x;

Когда я это сделал, он автоматически добавил новую строку в начале int (например, так):

example a(5);
printf("the value is: %i", a) ;

Результат:

the value is:
5
...