zoukankan      html  css  js  c++  java
  • C++(五十) — 容器中元素满足的条件

      容器中的内容必须满足三个条件:

    • (1)无参构造函数
    • (2)拷贝构造函数
    • (3)重载 = 运算符
    #define  _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include<functional>
    using namespace std;
    
    class Teacher
    {
    public:
        Teacher(char *name, int age)
        {
            m_name = new char[strlen(name) + 1];
            strcpy(m_name, name);
            m_age = age;
        }
        ~Teacher()
        {
            if (m_name != nullptr)
            {
                delete[]m_name;
                m_name = nullptr;
                m_age = 0;
            }
        }
        Teacher(const Teacher &obj)
        {
            m_name = new char[strlen(obj.m_name) + 1];
            strcpy(m_name, obj.m_name);
            m_age = obj.m_age;
        }
        // 重载等号操作符
        Teacher& operator+(const Teacher &obj)
        {
            if (m_name != nullptr)
            {
                delete[]m_name;
                m_name = nullptr;
                m_age = 0;
            }
            m_name = new char[strlen(obj.m_name) + 1];
            strcpy(m_name, obj.m_name);
            m_age = obj.m_age;
            return *this;
        }
        void printT()
        {
            cout << m_name << "   " << m_age << endl;
        }
    private:
        char *m_name;
        int m_age;
    };
    /*
    //容器必须满足三个条件
    (1)无参构造函数
    (2)拷贝构造函数
    (3)重载 = 运算符
    */
    int main()
    {
        Teacher t1("t1", 2);
        vector<Teacher> v1;
        v1.push_back(t1);
        t1.printT();
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    作为一个非计算机专业的人,你们是怎样进入IT行业的?
    第一次写博客
    变卖
    近2周关于Shadowing的总结
    二十九岁步入而立之年的思考
    最美的回忆漫天的雪
    有趣的房东夫妇
    遥远的思恋—我的儿子
    五年一轮回
    写在开工之前我的2010
  • 原文地址:https://www.cnblogs.com/eilearn/p/10996792.html
Copyright © 2011-2022 走看看