Если ситуация представляет собой базу данных магазина без строк, вы можете просто использовать enum.
enum {
Prod1,
Prod2,
Prod3
};
Это означает, что вы можете просто передавать целые числа в качестве идентификаторов, а затем просто иметь функцию печати с оператором switch.
void PrintProd(int product) {
switch(product) {
case Prod1:
cout << "Product 1" << endl;
break;
case Prod2:
cout << "Product 2" << endl;
break;
// etc.
}
}
Это позволяет обойти много неприятностей. Если вы не против иметь дело с кучей, вектор char *, распределяющий названия продуктов с идентификатором, который является индексом в векторе, также будет работать.