zoukankan      html  css  js  c++  java
  • C++结构体:默认构造函数,复制构造函数,重载=运算符

    C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值。

    比如,我定义一个简单的结构体,然后将其作为vector元素类型,要使用的话,就需要实现上述三个函数,否则就只能用指针了。

     

    #include <iostream>
    #include <vector>
     using namespace std;
    struct ST
    {
        int a;
        int b;
        ST()  //默认构造函数
        {
            a = 0;
            b = 0;
        }
        
        void set(ST* s1,ST* s2)//赋值函数
        {
            s1->a = s2->a;
            s1->b = s2->b;
        }
        ST& operator=(const ST& s)//重载运算符
        {
            set(this,(ST*)&s)
        }
        ST(const ST& s)//复制构造函数
        {
            *this = s;  
        }
    };
    int main()
    {
        ST a ;  //调用默认构造函数
        vector<ST> v;
        v.push_back(a);  //调用复制构造函数
        ST s = v.at(0);  //调用=函数
        cout << s.a <<"  " << s.b << endl;
        cin >> a.a;
        return 0;
    }


  • 相关阅读:
    第三次jsp作业
    快速排列 使用链表
    Cross
    题目
    ranch
    robot
    Mold
    Mold2
    OX_pattern
    KSC sort
  • 原文地址:https://www.cnblogs.com/riskyer/p/3290175.html
Copyright © 2011-2022 走看看