1
的剛剛開始學習一些CPP和得到這個東西去:無效使用非靜態成員
#include <string>
using std::string;
class Vigenere{
public:
Vigenere(string key, string alphabet = "abcdefghijklmnopqrstuvwxyz");
string encode(string message, string key = _key, string alphabet = _alphabet);
string decode(string message, string key = _key, string alphabet = _alphabet);
private:
string _alphabet;
string _key;
};
試圖編譯它說:「10 [錯誤]無效使用非靜態數據成員「的V @ genere的: :_鍵'」;
第10行是 string Key;
那麼,有沒有辦法讓它,所以我可以使用這些變量分別爲每個對象,而使用它們作爲默認參數?
怎麼樣編譯器應該知道從哪個實例採取'Vigenere :: _字母'?那麼它將如何爲第一個實例省略參數的參數? – LogicStuff
@LogicStuff該方法被調用的實例?沒有什麼是靜態的。 – Rotem
另一件事 - [與領先的下劃線名稱](http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier)保留爲在全局命名空間中執行。將它們用於其他事情可能不是最好的想法。 –