记得 点赞 评论 谢谢 收藏 也可

定义一个猫的信息类(Cat),使主函数调用该类可以打印猫的信息,具体要求如下:

(1)Cat类有两个私有数据成员,name(string 类型,表示名称)和count(int 类型,表示数量,静态数据成员)。 (2)为Cat类创建具有一个name参数的构造方法、复制构造函数以及析构函数;可以通过类变量count,完成cat实例的累加,统计猫的个数。 (3)showCount()函数为静态函数,按照示例输出格式打印猫的个数。

class Cat {
public :
       //  注意  我们在  公有的 写出  各种函数 
    // 构造  函数 
    Cat(string name1) :name(name1) { count++; }  // 我们 应该 这样写   :  然后他这样更 能理解以及高级

    Cat(Cat & name2):name(name2.name) { count++; }   // copy so we choose it to  &. 
    // we  konw  this problem have ~hanshu () , so we  should use ~ to solve it .
    // if we copy we should use it name2.name .
    ~Cat() {
        count--;
    }
       static void showCount() {
            cout << "Object count = " << count;
       }

private:  // 我们 注意到 题目中 私有的 name  count 
    string name;
   static int   count;  // 静态 变量 题目说的  



};

定义一个猫的信息类(Cat),使主函数调用该类可以打印猫的信息,具体要求如下:

(1)Cat类有三个私有数据成员,id(int 类型,表示编号)、name(string 类型,表示名称)和sid(int 类型,静态数据成员)。 (2)为Cat类创建具有一个name参数的构造方法、复制构造函数以及析构函数;可以通过类变量sid,完成cat实例的累加,并将累加值赋给id。 (3)info()函数按照示例输出格式打印猫的信息。

//请在这里编写类及相关函数
class Cat {
public:
    
    Cat(string name1) :name(name1) {sid++, id = sid; }
    Cat(Cat& name2) :name(name2.name) { sid++, id = sid; }
    ~Cat() {
        sid--;
        id=sid;
    }
    void info() {
        cout << "My name is " << name << " ,No. " << sid << endl;
    }
private:
    int id;
    string name;
    static  int sid;
};

1、定义一个线段类(Line),具体要求如下: (1)Line类使用Point类对象定义线段的两个端点值。 (2)为Line类增加有参构造函数Line,使得调用该构造函数时可以初始化两个端点值。 (3)Line类中定义一个公有函数:length(),表示两个端点的距离,它将返回double类型的距离数据。

2、定义一个三角形类(Triangle),具体要求如下: (1)Triangle类使用Point类对象定义三角形的三个顶点值。 (2)Triangle类使用重载的构造函数调用Line类返回double类型的三角形三条边的长度和面积。相关函数定义为:

double length1() 返回p1,p2的长度;

double length2() 返回p2,p3的长度;

double length3() 返回p3,p1的长度;

double area() 返回三角形的面积;

//请在此处按题目要求编写代码
//线段类
class Line {
public:
    Point p1, p2;
    Line(Point p1,Point p2):p1(p1),p2(p2){}  // 由于 我们 这里用的 哪啥所以我们下面也得
    double length(Point p1, Point p2) {
        return p1.distanceTo(p2);
    }
    /*double length2(Point p2, Point p3) {
        return p2.distanceTo(p3);
    }
    double length3(Point p3, Point p1) {
        return p3.distanceTo(p1);
    }*/

private:

};




class Triangle {
public : Triangle(Point p1,Point p2,Point p3):p1(p1),p2(p2),p3(p3){}
    Point p1, p2, p3;
    double length1() {
        return Line(p1, p2).length(p1, p2);
    }
        double length2() {
            return Line(p2, p3).length(p2, p3);
        }
        double length3() {
            return Line(p3, p1).length(p3, p1);
        }
        double area() {
            double q = (length1() + length2() + length3()) / 2;
            return sqrt(q * (q - length1()) * (q - length2()) * (q - length3()));
        }

private :
};

设计一个程序其中有三个类,即CBank,BBank,GBank,分别为中国银行类、工商银行类和农业银行类。每个类都包含一个私有数据balance,用于存放储户在该银行的存款数,另有一个友元函数total用于计算储户在这3家银行中的总存款数。

提示:

CBank,BBank和GBank 3个类中均包含私有数据成员balance,以及其输入输出的相关函数。由于需要从外部对3个类的私有数据balance进行访问,因此需要设计一个友元函数total(),这样通过友元函数的访问属性,即可统计出3家银行中的总存款数。

 friend void total(CBank  A, BBank  B, GBank  C);
private: