[1][C++]友元函数、运算符重载以及期末考试后的一些反思

  自行设计一个Fox类,有int size和int power两个对象。~表示狐狸飘了,size变为三分之一。&&表示两个狐狸合体,size等于两狐狸size之和,power等于两狐狸的平均值。

并用如下main函数测试:

int main()
{
    int s1,s2,s3,s4;
    cin>>s1>>s2>>s3>>s4;
    Fox a1(s1,s2);
    a1.display();
    ~(~a1);
    a1.display();
    Fox a2(s3,s4);
    Fox a3=a1 && a2;
    a3.display();

};
代码如下:
class Fox
{
    protected:
    int size;      //体型
    int power;     //力量
    public:
    int display()    //显示函数
    {
        cout<<size<<" "<<power<<endl;
    }
    Fox(int size,int power):size(size),power(power)  //带参构造
    {

    };
    friend Fox& operator~(Fox& a)    //~运算符重载,表示“飘了”。
    {
        a.size/=3;
        return a;
    }
    friend Fox operator&&(const Fox& a,const Fox& b)  //~运算符重载,表示“合体”。
    {
        int size=a.size+b.size;
        int power =(a.power+b.power)/2;
       
        return Fox(size,power);
    }

};
 
现在看来太简单的代码,但当时就是写不出来,对Visual Studio也不熟悉,浪费了很多时间在配置上。
我在C++学习上并没有倾注大量时间,所以成绩不好也是理所当然。但是这次失利也让我怀疑起了我在学习写代码方面是不是天赋欠缺。
我以后如果要考北京大学的CS,这样的学习态度肯定是不行的。更别谈出国、进硅谷大厂了。
一直以来,我都以为我在学习写代码方面很有天赋,但今天这件事给我拉回现实。
希望以后能吸取教训,多思考,写读多写,别再沉浸于虚假的优越感了。
posted @ 2021-12-09 23:46  melodyLY  阅读(35)  评论(0)    收藏  举报