2012-08-10 56 views
0

編輯:這是固定的在C++中使用字符串arg的全局函數

我想創建一個具有字符串數據類型的單個參數的全局函數。但是我無法讓它工作。以下是我有:

//////// 
//Func.h 

#include <string> 

#ifndef Func_H 
#define Func_H 

void testFunc(string arg1); 

#endif 

//////// 
// Func.cpp 

#include <iostream> 
#include <string> 
#include "Func.h" 
using namespace std; 

void testFunc(string arg1) 
{ 
    cout << arg1; 
} 

時要傳遞的參數是一個字符串,這是不行的,但如果我的說法整數或字符或其他任何東西(即沒有包含任何文件工作),那麼它工作正常。

基本上,我想要做的是在自己的.cpp文件中有幾個函數,並且能夠在Main.cpp中使用它們。我的第一個想法是在頭文件中聲明原型函數,並將頭文件包含在我的Main.cpp中以使用它們。如果你能想到更好的方法,請告訴我。我對C++並不是很有經驗,所以我總是樂於改進做事方式。

+4

Erm,'std :: string'。 – 2012-08-10 02:39:39

+0

這是令人尷尬的......無論如何感謝! – ojbway 2012-08-10 02:41:32

回答

1

你忘了命名空間!在函數頭中聲明功能

using namespace std; 
void testFunc(string arg1); 

,或者你應該寫

void testFunc(std::string arg1); 

void testFunc(std::string &arg1); // pointer to string object 

,或者如果你的作用不會改變對象

void testFunc(const std::string &arg1); 

和唐不要忘記Func.cpp,函數在實現中必須與聲明具有相同的參數,才能從另一個文件調用它。