Вам нужно определить оператор преобразования, что, чтобы иметь возможность написать
intVAR = myTYPEvar;
Например
operator int() const { return myTYPEin.getprivateint(); }
Тейк что в этом случае функция-член getprivateint должна быть определена с помощью определителя const
.
Что касается вашего оператора присваивания, то он не присваивает ничего, кроме выражения выражения, в котором используется оператор присваивания, имеет тип int. Например, используя ваш оператор присваивания можно написать
myTYPE obj1, obj2;
int x = obj1 = obj2;
В этом случае значение вызова getprivateint() для obj2 будет назначен х.
Вот показательный пример того, что вы будете иметь с вашим оператором присваивания
#include <iostream>
int main()
{
struct A
{
A(int x) : x (x) {}
int operator = (const A & a)
{
return a.x;
}
int x;
};
A a1(10), a2(20);
int x = a1 = a2;
std::cout << "x = " << x
<< ", a1.x = " << a1.x
<< ", a2.x = " << a2.x << std::endl;
return 0;
}
Выход
x = 20, a1.x = 10, a2.x = 20
Однако вы не можете писать, например
x = a1;
You нужен оператор преобразования, как показано выше.
Или, если использовать пример с структурой А код будет выглядеть
#include <iostream>
int main()
{
struct A
{
A(int x) : x (x) {}
operator int() const { return x; }
int x;
};
A a1(10);
int x = a1;
std::cout << "x = " << x
<< ", a1.x = " << a1.x
<< std::endl;
return 0;
}
Выход
x = 10, a1.x = 10