Вы говорите, что refFunc
возвращает string
, но возвращаемое значение равно 0
(int
, а не string
).
Это приведет к проблеме, так какПрограмма пытается использовать строковый объект и находит «мусор» (который был выделен в ожидании строки, но не был заполнен правильными битами строки).
Чтобы исправить, вам нужно либоизмените возвращаемый тип на int
или измените возвращаемое значение на допустимую строку (например, ""
).
В качестве альтернативы, если вы не используетевозвращаемое значение (как в вашем примере), вы можете изменить тип возвращаемого значения на void
.В этом случае используйте только return;
(примечание: нет значения после возврата), или вы можете не указывать весь оператор return;
ПРИМЕЧАНИЕ. Во избежание таких ошибок в будущем настройте компилятор так, чтобы он компилировался максимальноустановка предупреждений и возможно с предупреждениями, превращенными в ошибки.Это не позволит вам скомпилировать вашу программу, по крайней мере компилятор не скажет вам, что вы что-то делаете (скорее всего) неправильно
ПРИМЕЧАНИЕ. Не изучайте привычку использовать system()
даже для приостановки приложения.Это зависит от платформы и может представлять угрозу безопасности (хотя я не думаю, что вы будете беспокоиться об этом некоторое время)