首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++:在vector中放自己定义的类,对类有何要求?解决方法

2012-03-12 
C++:在vector中放自己定义的类,对类有何要求?我定义了一个类,存储一些数据,然后把这个类存放到vector中,对

C++:在vector中放自己定义的类,对类有何要求?
我定义了一个类,存储一些数据,然后把这个类存放到vector中,对这个类有什么要求吗?看书上说的是类必须有默认的构造函数,可是类应该都有默认的构造函数啊?(我是菜鸟,很有可能说的不对。。。)该怎么做呢,大神们帮帮忙吧。

[解决办法]
要有拷贝构造函数吧
如果类比较大,还是放指针吧
[解决办法]
拷贝构造函数,赋值操作符,
[解决办法]
拷贝构造函数,赋值操作符,析构函数,只要一个不用默认的,就要一起自定义 

[解决办法]
类一旦存在拷贝构造,深拷贝还是浅拷贝都很有讲究,各有优缺点,搞不好好有可能误用
[解决办法]

C/C++ code
#include<iostream>#include<vector>class myInt{public:    myInt():m_li(0),m_ri(0)     {}    ~myInt(){}    const myInt& operator=(const myInt& _tmp)    {          this->m_li = _tmp.m_li;          this->m_ri = _tmp.m_ri;          return *this;    }    void print()    {        std::cout<<"m_li = "<<this->m_li<<std::endl;        std::cout<<"m_ri = "<<this->m_ri<<std::endl;    }    void set(int li, int ri)    {        this->m_li = li;        this->m_ri = ri;    }private:    int m_li;    int m_ri;};//typedef vector<myInt> MYINT;int main(){        myInt c1;    myInt c2;    myInt c3;    c1.set(1,1);    c2.set(2,2);    c3.set(3,3);    std::vector<myInt> v1;    v1.push_back(c1);    v1.push_back(c2);    v1.push_back(c3);    for(std::vector<myInt>::iterator iter = v1.begin(); iter != v1.end(); iter++)    {        iter->print();    }    v1.clear();    return 0;} 

热点排行