objDim
- это указатель .Когда вы добавляете к указателю, вы добавляете к самому указателю и ничего не добавляете к данным, на которые он указывает.
И вы не можете добавить все к указателю, в основном только целочисленные значения.И добавлять два указателя, как вы, вообще не имеет смысла (поэтому это запрещено).
Если вы хотите иметь возможность добавлять строки, используйте std::string
для all strings.
Кроме того, необходимость использования спецификатора const
также должна давать некоторые подсказки о том, на что указывает указатель constant и, следовательно, не может быть изменена (включаядобавлено в).
И в этом случае вам не нужна никакая временная переменная objDimension
или objDimStr
(если вы не используете их позже в коде):
std::string objDim = "The object dimension is: " + std::to_string(geo->Dimension());
Здесь сложение работает, потому что есть перегруженная функция operator+
, которая принимает правильные аргументы в правильном порядке и возвращает новый объект std::string
.