Измените параметр на ссылку на const Vec:
virtual void Add(Vec const &vector) = 0;
Класс (публично), полученный из Vec
, может быть передан посредством ссылки на базовый класс.
Также,поскольку вы, очевидно, планируете использовать Vec
в качестве базового класса, вы, вероятно, захотите сделать его dtor виртуальным.В противном случае, если вы попытаетесь уничтожить объект производного типа с помощью указателя или ссылки на базу, вы получите неопределенное поведение.