2013-04-16 47 views
0

我一直在尋找修復我的錯誤,但我無法在任何地方找到我的情況。所以我有一個功能傳遞對象類數組的字符串功能

int getUniques(Visitors info[], string address, string startDate, string endDate); 

該函數將採取我的數組充滿類對象和3個字符串。當我嘗試構建時,我會遇到各種各樣的錯誤。我會列出他們全部。

「訪問者」在此範圍內未聲明

預期主表達式之前「地址」(這同樣適用於其他的字符串)

表達式列表被看作化合物表達在初始化

任何人都知道這些意味着什麼以及如何解決它們?

編輯:哈哈我知道我這麼愚蠢,我現在修好了,但我有其他問題,我想要導入。如果我仍然無法讓我的方法工作,我將重新做我的文章,並在一段時間內重新發布。

+2

你不能改變你的問題到其他不相關的問題。如果您在經過一段合理的時間搜索後仍然無法找到自己的答案,那麼您必須提出另一個問題,並保持原樣。 StackOverflow上的問題和答案被存檔爲後代。 – lvella

回答

2

這些錯誤指的名字Visitorsstring沒有被看作是由類C++編譯器...

爲了工作,你Visitors類型的聲明必須早在函數聲明;要麼在同一個源文件中,要麼在#include預處理器指令中包含的頭文件中。

此外,C++ string類型是在標準頭文件string,必須包含之前使用所定義,並且類型cotained在命名空間std,所以你要麼需要使用全名std::string或聲明你用它與using指令:

#include <string> 
#include "visitors.hpp" 

using std::string; 

int getUniques(Visitors info[], 
       string address, 
       string startDate, 
       string endDate); 

,並在visitors.hpp文件,您的類型定義(proably一個class,但也可能是一個struct,一個union,一個enumtypedef一些其他類型的).. 。

#pragma once 

class Visitors { 
    ... // Your class definition. 
}; 

請注意,這是一個不好的做法,使用頭文件using指令,因爲它會污染編譯單元,其中包括你的頭的默認命名空間。如果是這種情況,則應使用全名std::string

0

「Visitors Info」是否將數組聲明傳遞給函數?

如果是這樣,你需要聲明它是什麼類型的變量。例如。整數數組或字符串數​​組

因此,一個更正的函數聲明可以。

int getUniques(string Visitors_info[], string address, string startDate, string endDate); 

假設我在解釋你的代碼試圖正確地做什麼。