SymbolicC++ использует C++ и объектно-ориентированное программирование для разработки системы компьютерной алгебры. Объектно-ориентированное программирование — это подход к разработке программного обеспечения, основанный на классах, а не на процедурах. Такой подход максимизирует модульность и сокрытие информации. Объектно-ориентированный дизайн дает много преимуществ. Например, он объединяет как данные, так и функции, которые работают с этими данными, в один модуль. Такая единица (абстрактный тип данных) называется классом.
Мы используем C++ в качестве нашего объектно-ориентированного языка программирования по следующим причинам: C++ позволяет вводить абстрактные типы данных. Таким образом, мы можем ввести типы данных, используемые в системе компьютерной алгебры, как абстрактные типы данных. Язык C++ поддерживает основные концепции объектно-ориентированного программирования: инкапсуляцию, наследование, полиморфизм (включая динамическое связывание) и перегрузку операторов. Он имеет хорошую поддержку динамического управления памятью и поддерживает как процедурное, так и объектно-ориентированное программирование. Менее абстрактная форма полиморфизма обеспечивается поддержкой шаблонов. Мы перегружаем операторы