c++编程题示例

c++编程题示例_第1张图片

class myclass
{
    public:
        int* arr;
        int size;
        myclass(string name,int size, int* score_arr);
       ~ myclass();
       int operator+ (myclass & temp);
       bool operator>(myclass& temp);
       myclass& operator+ (int val);
       friend ostream& operator<<(ostream& mycout, const myclass& temp);
       operator int();
   
    private:
        string cname;
      
     


};

myclass::myclass(string name, int size,int *score_arr)
{
    this->cname = name;
    this->size = size;
    arr = new int[size];
    for (int i = 0; i < size; i++)
    {
        arr[i] = score_arr[i];
    }

}


myclass::~myclass()
{
    cout << "析构函数" << endl;
    delete [] arr;

}

int myclass::operator+ (myclass& temp)
{
    int sum = 0;
    for (int i = 0; i < this->size; i++)
    {
        sum = sum + this->arr[i];
    }

    for (int i = 0; i < temp.size; i++)
    {
        sum = sum + temp.arr[i];
    }

    return sum;

}

bool myclass::operator>(myclass& temp)
{
    int sum1 = 0,sum2=0;
    for (int i = 0; i < this->size; i++)
    {
        sum1 = sum1 + this->arr[i];
    }
    for (int i = 0; i < temp.size; i++)
    {
        sum2 = sum2 + temp.arr[i];
    }

    if (sum1 > sum2)
        return true;
    else
        return false;


}

myclass& myclass::operator+ (int val)
{

   
    for (int i = 0; i < this->size; i++)
    {
        this->arr[i] = this->arr[i] + val;
    }

    return *this;

}

ostream& operator<<(ostream& mycout, const myclass & temp)
{
    mycout << temp.cname << ":";
    for (int i = 0; i < temp.size; i++)
    {
        mycout << temp.arr[i] << " ";

    }
    cout << endl;
   
    return mycout;
}
myclass::operator int()//将myclass转换为 int类型
{
    int sum1 = 0;
    for (int i = 0; i < this->size; i++)
    {
        sum1 = sum1 + this->arr[i];
    }

    return sum1;

}

int main()
{
    int arr1[5] = { 10,20,30,40,50 };
    int arr2[5] = { 5,10,15,20,25 };
    int arr3[5] = { 1,2,3,4,5 };
    myclass s1("2503", 5,arr1), s2("2502", 5,arr2), s3("2504", 5, arr3);
   
    /*cout< s2)
        cout << "2503 big" << endl;
    else
        cout << "2502 big" << endl;*/

   //  myclass s3=s2 + 10;
 //    s2=s2+10;

   /*for (int i = 0; i 

你可能感兴趣的:(c++,算法,开发语言)