私は、クラスメンバー(セッター)を割り当てる方法について初心者の質問があります。私は、スクリプトを使用していますし、ほとんどがそれは(Pythonで)を介して行われますC++プライベートメンバーの変数が別の関数で不明
def set_mymember(mymember):
self.mymeber = mymember
は、私の同僚は、「自己」教えてくれましたし、「これは」、C++で必要とされていない「これは」存在し、それはこの文脈では間違っていないのですしかし、それは私のために理解するのが難しいだろうので、彼は私が気にしてはいけないと言った。だから私は、最初に彼のアドバイスに従ってみました:
私のクラス定義: - :私は塗りつぶされた文字列とベクターとそれらを呼び出すここ
class Query
{
public:
Query() { }
~Query() { }
void setoptions(std::string qtext_where="", bool qtext_erl=true, std::vector<std::string> kids=std::vector<std::string>());
Query build_query();
void set_db_table(std::string db_table);
void set_db_key(std::string db_key);
void set_m_qtext(std::string m_qtext);
void set_foo(std::string foo);
std::string sql();
std::string get_sql_update();
private:
std::string m_db_table; // Tabellenname
std::string m_db_key; // Tabellen-key
std::string m_qtext_where; // add.optionale where clause
std::string m_qtext; // fertiger SELECT
std::string m_sql_update; // fertiger UPDATE
bool m_erl; // nur erledigte waehlen?
std::vector<std::string> m_kids; // Liste von keys zu selecten
};
とセッターメソッドの一つだが(これは、SQLクエリ文字列を作成する必要があります) 、ダブルは、このコード
void Query::setoptions(string qtext_where, bool erl, vector<string> kids) {
m_qtext_where = qtext_where;
m_erl = erl;
m_kids = kids;
}
でそれを確認しかし、私のアプリは、後でquery.build_query()
を呼び出したときに変数が空である
Query Query::build_query() {
cout << "kids size" << m_kids.size() << endl;
cout << "m_qtext_where " << m_qtext_where << endl;
// Query zur auswahl der zu uebertragenden Datensaetze
string sql_update = "UPDATE " + m_db_table;
string qtext = "SELECT * FROM " + m_db_table;
string qtext_order = " ORDER BY " + m_db_key;
(...)
EDIT:だからここ1.setoptionsを呼び出すアプリケーションコードの一部だし、2.build_query
// read file line by line into vector of strings
vector<string> text_file;
ifstream ifs(input);
string temp;
while(getline(ifs, temp)) {
if (temp.substr(0,1) == "#") {
cout << "COMMENT: " << temp << endl;
continue;
}
cout << temp << endl;
text_file.push_back(temp);
}
// check: yes, vector has a size = number of lines
cout << "text_file size " << text_file.size() << endl;
// create Query object
Query query = Query();
// set the members, bool erl = true
query.setoptions("", erl, text_file);
// call 2nd method
q2 = query.build_query();
...のみ呼び出す
。 – blottedscience
build_queryを呼び出す前にSetOptionsを最初に呼び出しましたか? – Jeeva
他の関数では、どのprivateメンバー変数が不明ですか?もう一つの機能は何ですか?また、ドイツ語を英語に翻訳しようとしました:) –