vector作为成员变量的问题
时间:2008-06-12 15:10:08
来源:论坛整理 作者: 编辑:chinaitzhe
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ class A{}; class B{ vector<A> Alist; };
编译都没错,可是当我在main函数中执行
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ B b; b.Alist.push_back(A());
时就出错了。。。运行时错误,到底是什么原因?要把vector作为类的成员变量怎么做呢?
网友回复:类的私有成员怎么能被直接访问呢?
网友回复:呃,认真看看编译错误提示。
耐住性子,不要浮躁。
英文很简单,你必须跨过这道坎。
网友回复:对不起,B中漏了public,我的代码中有的,不是这个错误。
网友回复:编译任何没错的。。。
网友回复:这样
class A{};
class B{
vector <A> Alist;
public:
void push(A a)
{
Alist.push_back(a);
}
};
B b;
b.push(A());
网友回复:难道是因为我的A类没有写copy构造函数?我试试去。。。
网友回复:
呵呵,这样的封装我也懂得,上面只是举个例子,果然是因为A类没有写copy构造函数。。。问题解决了。。。谢谢
网友回复:运行时错误?
网友回复:楼主你这个贴子算是白发了。
为什么A加上copy constructor就好了?A需要有copy constructor吗?
网友回复:STL种的vector,set map等等是模板类,它要支持泛型算法。 所以具体的类型必须符合以下3个条件
1. 缺省的构造函数
2. 支持等于操作
3. 支持小于操作
关键字:vector,成员,变量,问题,
上一篇:读入 文本后,回车换行是啥啊?
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面