我已經得到了我的工作分配的參數的構造函數,所以我很猶豫張貼我所有的代碼放在這裏(用於起飛的機會的,我的教授不知何故會發現它 - 政策是會構成作弊)。傳遞一個向量<string>作爲參數的對象
我的問題涉及這個雖然:我有一個Visual C++程序,有一個文本框,需要一個用戶輸入一個字符串,點擊一個按鈕,並添加字符串的向量。然後我需要通過它的參數化構造函數將該向量(全部字符串)傳遞給新創建的對象。還有一些涉及的繼承。
基本上,在對象和形式.h文件的.h文件中,我有以下內容(根據教師如何讓它在對象.h文件中,我不允許更改):
typedef vector<string> StringList;
然後創建一個新的父對象,並在窗體的.h文件中一個新的載體:
private: Trial * t;
private: StringList * strings;
然後初始化在窗體的構造函數:
strings = new StringList;
然後我試圖創建一個派生類的新實例,並給它的父對象,同時傳遞所需的參數:
t = new Vector_Trial(strings, multi, type);
我得到,說第一個括號下方的紅線:
Error: no instance of constructor "Vector_Trial::Vector_Trial" matches the argument list
argument types are:(StringList *, int, Trial::TrialType)
以下是父類的構造函數和派生類:
Trial (StringList & s, int num_runs, TrialType t)
: strings(s), numRuns(num_runs), type(t) { }
Vector_Trial (StringList & s, int num_runs, TrialType t) : Trial (s, num_runs, t) {}
我假設我的問題是與矢量..任何想法?
爲什麼你不聲明私有成員爲「StringList的字符串」,而不是,只是溝調用'new'? –
只需使用'StringList的strings',不使用指針的版本,然後在'Vector_Trial'構造函數可以調用輸入'StringList'交換方法交換琴絃英寸 –
不幸的是,當我這樣做,我得到的錯誤:錯誤:託管類的成員不能是一個非託管類類型 – user3089335