我該如何調用一個函數並讓我的構造函數保持私有?如果我讓這個類是靜態的,我需要聲明一個編譯器用來調用構造函數的對象名稱,如果構造函數是私有的(對象也是無關的),那麼它不能。這裏是我嘗試使用的代碼(這是不編譯):C++私人構造類
我想保持構造私有,因爲我會在後面添加一個對象之前是做了很多檢查,修改先前的對象時,所有提交變量不是唯一的,而是創建新的對象。
#include <iostream>
#include <fstream>
#include <regex>
#include <string>
#include <list>
#include <map>
using namespace std;
using namespace tr1;
class Referral
{
public:
string url;
map<string, int> keywords;
static bool submit(string url, string keyword, int occurrences)
{
//if(Referrals.all.size == 0){
// Referral(url, keyword, occurrences);
//}
}
private:
list<string> urls;
Referral(string url, string keyword, int occurrences)
{
url = url;
keywords[keyword] = occurrences;
Referrals.all.push_back(this);
}
};
struct All
{
list<Referral> all;
}Referrals;
int main()
{
Referral.submit("url", "keyword", 1);
}
你能更清楚你的目標是什麼嗎?它看起來像你試圖保留引薦的所有實例的列表。爲什麼你想讓你的構造函數保持私有? – 2009-09-03 21:00:56