Para almacenar la suma en "vector" basta sobrecargar el constructor copia de "vector" para poder recibir const matrix&. Además tienes que agregar un constructor sin párametros "default constructor" para "matrix" y también es buena idea si las clases hijas tienen uno.Supongo que todo esto es simple ejercicio académico, por que es un poco absurdo tener esas dos clases hijas, puesto que tienen el mismo comportamiento y miembros de la clase padre.
Pero no entiendo por que hay que darle esa declaración de constructor default para que luego me deje sobrecargar el copia. Me puedes decir??