我有一个正在做的作业,所以我在犹豫要不要把我所有的代码都放在这里(为了防止我的教授以某种方式发现它--政策是这会构成作弊)。
我的问题是:我有一个可视化的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 ) {}我想我的问题出在向量上..有什么想法吗?
发布于 2013-12-11 10:56:39
如果使用此函数,
Vector_Trial ( StringList & s, int num_runs, TrialType t )您将向它传递一个StringList对象,而不是指向StringList的指针。如果您按如下所示更改strings声明,
private: StringList strings;https://stackoverflow.com/questions/20509671
复制相似问题