Как вы объявляете функцию, которая возвращает строку в заголовочном файле, поэтому ее можно использовать другими * .cpp-файлами.Объявить функцию, которая возвращает строку в файле заголовка
Например, код ниже не компилировать со следующими ошибками:
Source.h
#pragma once
#include <string>
string MyFunc();
Source.cpp
#include "stdafx.h"
#include "Source.h"
using namespace std;
string MyFunc()
{
string str;
return str;
}
Ошибки
Error 1 error C2146: syntax error : missing ';' before identifier 'MyFunc' 4 1
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 4 1
Error 3 error C2872: 'string' : ambiguous symbol 5 1
Error 4 error C2146: syntax error : missing ';' before identifier 'MyFunc' 5 1
Error 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 5 1
Error 6 error C2086: 'int string' : redefinition 5 1
Error 7 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 6 1
Error 8 error C2872: 'string' : ambiguous symbol 7 1
Error 9 error C2146: syntax error : missing ';' before identifier 'str' 7 1
Error 10 error C2065: 'str' : undeclared identifier 7 1
Error 11 error C2065: 'str' : undeclared identifier 8 1
If Я заменяю string
с char*
, он компилируется без ошибок.
вы забыли 'std ::', строка объявлена внутри пространства имен – Borgleader