Директива const была добавлена для обеспечения возможности создания переменных, методов и функций, значения которых не могут быть изменены.
В случае метода printMessage, добавление const означает, что метод не будет изменять состояние объекта, для которого вызван. Это позволяет вызывать метод для неизменяемых (const) объектов.
Ошибка "Аргумент типа 'const char *' несовместим с параметром типа 'char *'" возникает потому, что const указывает на то, что значение указателя не может быть изменено, поэтому присваивание значения указателю типа char *, который может быть изменен, создает несовместимость типов. Чтобы исправить эту ошибку, следует изменить тип параметра метода printMessage на const char *, чтобы поддержать принятие аргументов, указывающих на константные строки.