Извините за размытое название, мне кажется, что-то не хватает.
Я не решался опубликовать это, потому что это кажется таким простым, но я не могу заставить его работать. Моя IDE говорит мне, что следующее неверно. У меня есть класс IRatio, который я хочу заменить на long double.
class
IRatio
{
protected:
long double
mValue;
public:
IRatio();
IRatio(
const IRatio& ir);
IRatio(
const long double& ld);
IRatio&
operator=(
const IRatio& ir);
IRatio&
operator=(
const long double& ld);
operator long double() const;
};
Теперь я знаю, что работают следующие строки:
IRatio n1(0.01f);
IRatio n2;
n2 = 0.02f;
Однако, к моему удивлению, эта строка не работает:
IRatio n3 = 0.03f;
Как мне заставить это работать? Я предположил, что конструктор копирования был вызван в этом случае? Или даже если это был оператор присваивания, я не против! Я знаю, что std :: string может это сделать.
std::string s = "hello!";
Спасибо