C++ 传递向量<;字符串>;作为对象的参数化构造函数中的参数

C++ 传递向量<;字符串>;作为对象的参数化构造函数中的参数,c++,vector,C++,Vector,我有一个作业,我正在做,所以我不敢把我所有的代码都发布在这里(因为我的教授可能会找到它——政策是这将构成作弊) 我的问题是这样的:我有一个Visual C++程序,它有一个文本框,它可以让用户输入一个字符串,点击一个按钮,并将该字符串添加到向量中。然后我需要通过其参数化构造函数将该向量(充满字符串)传递到新创建的对象中。还涉及到一些继承 基本上,在对象的.h文件和forms.h文件中,我有以下内容(根据老师希望它在object.h文件中的方式,我不允许更改): 然后在窗体的构造函数中初始化它:

我有一个作业,我正在做,所以我不敢把我所有的代码都发布在这里(因为我的教授可能会找到它——政策是这将构成作弊)

我的问题是这样的:我有一个Visual C++程序,它有一个文本框,它可以让用户输入一个字符串,点击一个按钮,并将该字符串添加到向量中。然后我需要通过其参数化构造函数将该向量(充满字符串)传递到新创建的对象中。还涉及到一些继承

基本上,在对象的.h文件和forms.h文件中,我有以下内容(根据老师希望它在object.h文件中的方式,我不允许更改):

然后在窗体的构造函数中初始化它:

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 ) {}

我想我的问题是向量。。有什么想法吗?

如果您使用此功能

Vector_Trial ( StringList & s, int num_runs, TrialType t )
您将向它传递一个
StringList
对象,而不是指向
StringList
的指针。 如果您更改
字符串
声明如下

private: StringList strings;

我不明白为什么您需要创建
字符串
a
StringList*


相反,只需将其声明为
StringList字符串
,并删除对
new

的调用。为什么不直接将私有成员声明为“StringList String”,而直接放弃对
new
的调用?只需使用
StringList String
,而不使用指针版本,然后在
Vector\u-Trial
构造函数中,您可以调用输入
StringList
上的swap方法来交换字符串。不幸的是,当我这样做时,我得到一个错误:错误:托管类的成员不能是非托管类类型。我似乎需要将Vector_Trial创建为“非托管类”,然后通过指针(pimpl)封装到“托管”类中。个人而言,我将避免使用.NET编译器,它将这种无用的东西添加到C++中。看,当我这样做时,我得到了错误:错误:托管类的成员不能是非托管类类型当我这样做时,我得到了错误:错误:托管类的成员不能是非托管类type@user3089335:啊,你在用C++/CLI编程?那是另一种语言。。。我不知道怎样才能最好地帮助你。你可以尝试一些难看的东西,比如把
*字符串
作为参数传递给
Vector\u-Trial
作为黑客,但是。。。电子战?
Vector_Trial ( StringList & s, int num_runs, TrialType t )
private: StringList strings;