Операторы в c ++: как присвоить значение переменной изнутри объекта переменной int, используя операторы в c ++ - PullRequest
1 голос
/ 13 июня 2019

Я новичок в C ++, на случай, если у меня есть объект Obj, который имеет переменную int, как Obj.var, как я могу присвоить это значение другому int с помощью оператора '='?

примечание: я уже плохо реализовал код, который написал кто-то другой, который я хотел бы использовать, не меняя его, когда Obj является универсальным, но он использовался только для int

пример ниже:

class Obj

{

public:

    int var ; 
};

int variable;

variable = Obj;

Я ожидаю, что это произойдет:

variable = Obj.var

1 Ответ

1 голос
/ 13 июня 2019

Если я вас правильно понял, вы можете включить в определение класса оператор преобразования.

Например

#include <iostream>

class Obj
{
public:
    operator int() const { return var; }
    int var ; 
};


int main()
{
    Obj obj = { 10 };

    int variable = obj;

    std::cout << "variable = " << variable << '\n';
}

Вывод программы

variable = 10

Или оператор также можно определить как

operator const int &() const { return var; }
...