Skoro chcesz za pomocą jakieś klasy przekształcić wartość double na float, to najprościej byłoby zrobić w tej klasie "eng" statyczną metodę, która jako parametr przyjmuje wartość double, a zwraca tą samą wartość ale w postaci float'a. Wywołujesz tą statyczną metodę z odpowiednim argumentem i ona zwraca float'a twojej zmiennej.
Jeśli tobie te rozwiązanie nie odpowiada i chcesz aby twoja podana linijka kodu działała to możesz w tej klasie stworzyć konstruktor z jednym parametrem typu double i zapisać tę wartość w polu tej klasy. Dzięki temu operacja rzutowania z double na obiekt klasy "eng" się powiedzie. Taki konstruktor jest nazywany konstruktorem konwertującym (poczytaj sobie o nim to zrozumiesz jak to wszystko działa). Następnie stwórz w klasie operator konwersji na typ float (również jak nie znasz operatora konwersji to też o nim poczytaj). Który przekonwertuje podaną wartość double, zapisaną w polu klasy na float.
PS.
W C++ stosujemy raczej static_cast zamiast rzutowania w stylu C