[C++ Notas de estudio 7] Experimento 7- Clase avanzada y conocimiento de objetos (1)

[Descripción]
Complete el código complementando la parte de implementación de la clase de acuerdo con la operación de la clase en la función principal.
Esta clase tiene una variable estática privada count para registrar el número de todos los objetos de esta clase. La función principal generará el número de objetos después de diferentes declaraciones. Solo implementando esta clase correctamente y asegurándose de que count registre correctamente el número de objetos de esta clase. class se puede generar el resultado correcto.
【Entrada】
Sin entrada.
[Salida]
Se ha escrito la salida de la función principal.

#include <iostream>
#include <string>
using namespace std;
class Student {
    
    
private:
    int id;
    static int count; 
public:



/* 请在此处编写相关代码 */

static void InitCount(){
    
    
    count=0;
}

Student(){
    
    
    count++;
}
Student(int a){
    
    //如果输入一个整数
    id=a;
    count++;
}
Student(const Student &stu){
    
    //复制构造函数,构造一个对象,count+1
    id=stu.id;
    count++;
}
~Student(){
    
    //析构完一个,count-1
    count--;
}

friend void PrintCount();//用友元,可以直接访问对象的私有数据成员count
friend void Print(Student s);//可以直接访问私有成员s2.id,无需get,数据共享

/* 请在此处编写相关代码 */




};
int Student::count;
void PrintCount() {
    
    
    cout << "Total " << Student::count << " students" << endl;
}
void Print(Student s) {
    
    
    cout << "the id is " << s.id << endl;
}
int main() {
    
    
    Student::InitCount();
    Student s;
    PrintCount();
    Student s1(10);
    Student s2(s1);
    PrintCount();
    Print(s2);	// 调用拷贝构造函数,调用结束调用析构函数 
    PrintCount();
    return 0;
}

[Descripción]
Declara e implementa una clase Line para representar un segmento de línea. La clase Line incluye:
Los miembros de datos de objetos privados, el inicio y el final de la clase Point, representan los dos puntos finales del segmento de línea.
Un constructor parametrizado que establece los extremos del segmento en los parámetros dados.
La función miembro pendiente calcula la pendiente del segmento de línea.
【Entrada】
Ingrese 4 números, que representan las coordenadas del punto 1 (x1, y1) y el punto 2 (x2, y2).
【Salida】
Muestra la pendiente de la línea recta.
[Ejemplo de entrada]
10 20 30 70
[Ejemplo de salida]
2.5
[Sugerencia]
Para la clase Point, consulte el Experimento 1 en el Capítulo 5 de "Conceptos básicos del programa - Tomando C++ como ejemplo".
[Fuente]
Experimento 1 en el Capítulo 6 de "Conceptos básicos de programación - Tomando C como ejemplo".

#include <iostream>
#include <cmath>
using namespace std;


/* 请在此处分别编写Point类和Line类 */
class Line;//向前声明
class Point{
    
    
    
    private:
        double start;
        double end;
    public:
        friend Line;//Line可以访问Point的私有成员了  
        Point(double &x,double &y){
    
    
            start=x;
            end=y;
        }
};

class Line{
    
    
    private:
        double k;
    public:
        Line(const Point &x,const Point &y){
    
    //复制构造函数
            k=(y.end-x.end)/(y.start-x.start);//已知两点,计算斜率
        }

        double slope(){
    
    //输出
            return k;
        }
};

/* 请在此处分别编写Point类和Line类 */


int main() {
    
    
    double x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    Point start(x1, y1);
    Point end(x2, y2);
    Line line(start, end);
    cout << line.slope() << endl;
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_49868778/article/details/116299122
Recomendado
Clasificación