我對C++非常陌生,來自Java和C。我的書沒有提及私有函數,Google搜索也沒有太多變化。這對我來說應該是微不足道的,但我無法讓它工作。C++私有函數 - 未在此範圍內錯誤
我有這樣的代碼:
#ifndef RUNDATABASE_H
#define RUNDATABASE_H
#include <iostream>
#include <string>
class RunDatabase
{
public:
int main();
protected:
private:
bool checkIfProperID(std::string);
};
#endif // RUNDATABASE_H
而在另一個文件:
#include "RunDatabase.h"
int main()
{
std::string id; // after this, I initialize id
if(!checkIfProperID(id))
{
std::cout << "Improperly formatted student ID, must be numeric" << std::endl;
break;
}
}
bool RunDatabase::checkIfProperID(std::string id)
{
return true;
}
我得到這個錯誤:error: 'checkIfProperID' was not declared in this scope
使用MinGW的G ++ 4.4.1在Windows 7 64位。
感謝您的任何幫助。
如果你不知道這個,如果你從Java中來的?抱歉。無論如何,答案會很清楚。 – Marlon 2012-03-07 02:08:42
@Marlon由於main與checkIfProperId在同一個類中,所以我不明白爲什麼其他函數不在該範圍內。你可以在main中做同樣的事情,但是這個方法顯然必須是靜態的,或者你需要實例化同一個類的新對象。 – jn1kk 2012-03-07 02:10:26
如果你的書沒有提到私有函數,你應該*真的*放棄它並得到[一本值得這個名字的書](http://stackoverflow.com/q/388242/46642)。 – 2012-03-07 02:18:07