首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在对象的参数化构造函数中将vector<string>作为参数传递

在对象的参数化构造函数中将vector<string>作为参数传递
EN

Stack Overflow用户
提问于 2013-12-11 10:52:06
回答 2查看 532关注 0票数 0

我有一个正在做的作业,所以我在犹豫要不要把我所有的代码都放在这里(为了防止我的教授以某种方式发现它--政策是这会构成作弊)。

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

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

代码语言:javascript
运行
复制
typedef vector<string> StringList;

然后在表单的.h文件中创建一个新的父对象和一个新的向量:

代码语言:javascript
运行
复制
private: Trial * t;
private: StringList * strings;

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

代码语言:javascript
运行
复制
strings = new StringList;

然后,我尝试创建一个派生类的新实例,并将其分配给父对象,同时传递所需的参数:

代码语言:javascript
运行
复制
t = new Vector_Trial( strings, multi, type );

我在第一个括号下面画了一条红线,上面写着:

代码语言:javascript
运行
复制
Error: no instance of constructor "Vector_Trial::Vector_Trial" matches the argument list
argument types are:(StringList *, int, Trial::TrialType)

下面是父类和派生类的构造函数:

代码语言:javascript
运行
复制
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 ) {}

我想我的问题出在向量上..有什么想法吗?

EN

Stack Overflow用户

发布于 2013-12-11 10:56:39

如果使用此函数,

代码语言:javascript
运行
复制
Vector_Trial ( StringList & s, int num_runs, TrialType t )

您将向它传递一个StringList对象,而不是指向StringList的指针。如果您按如下所示更改strings声明,

代码语言:javascript
运行
复制
private: StringList strings;
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20509671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档