@Drottarutarnum
Любопытный любитель

Как сделать get и set на операторах присваивания?

Хочу сделать гетер и сетер на операторе присваивания, но что-то не до конца понимаю, как оно работает
template<typename DataType>
struct Data {
	DataType data;

	DataType Get() {
		return data;
	}

	void Set(DataType _data) {
		data = _data;
	}
};


auto temp = Data<float>();

temp.Set(1.345);

float getTemp = temp.Get();
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
@vanyamba-electronics
#include <iostream>

using namespace std;

template<typename DataType>
struct Data {
  static const DataType m_default_value;
  DataType m_data;

  Data() : m_data(m_default_value) {}
  
  Data(const DataType& value) : m_data(value) {}

  operator DataType () const {
    return m_data;
  }

  void operator = (const DataType& _data) {
    m_data = _data;
  }
};

template <> Data<double>::m_default_value = 0.;

int main(int argc, char** argv) 
{
    Data<double> data = 3.14159;
    cout << data << endl;
    return EXIT_SUCCESS;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы