La primera semana de aprendizaje: conceptos básicos y uso de clases y objetos.

  1. Programación estructurada

Programa = estructura de datos + algoritmo

  • El programa consta de variables globales y muchas funciones que se llaman entre sí
  • Los algoritmos se presentan en forma de funciones para operar en estructuras de datos

Desventajas: Las funciones y las estructuras de datos no están conectadas directamente. A medida que aumenta el tamaño del programa, el programa se vuelve difícil de entender. Por ejemplo, ¿qué funciones están operando en una determinada estructura de datos? ¿En qué estructura de datos opera una función? ¿Cuál es la relación de llamada entre dos funciones cualesquiera?

  • No existe el concepto de encapsulación y ocultación. Si desea modificar una variable, debe averiguar la frase fuente, que no es propicia para el mantenimiento y la expansión.
  • Difícil de comprobar

Reutilización: Ya existen bloques de código con la misma función y los programas estructurados no son propicios para la reutilización.

  1. Programación orientada a objetos

Programa orientado a objetos = clase + clase + clase + ...

  • Resumir las características comunes de cierto tipo de cosas objetivas para formar una estructura de datos (se pueden usar múltiples variables para describir las propiedades de las cosas)
  • Resumir las acciones que puede realizar la cosa para formar una función, que puede manipular la estructura de datos (abstracción)

Agrupar la estructura de datos y la clase de método de operación, esto es encapsulación.
La orientación a objetos tiene cuatro características básicas de abstracción, encapsulación, herencia y polimorfismo

  1. Clases y objetos

1) Clases abstractas de cosas objetivas

eg.矩形,则成员变量为长、宽,成员函数有计算面积、周长、
设置长宽、以及displace。
#include<iostream>
class rectangle
{
    
    
	private:
		double length;
		double width;
	public:
		rectangle(double a=0,double b=0):length(a),width(b){
    
    }
		double area(){
    
    return (length*width);};
		double perimeter(){
    
    return 2*(length+width);}
		void displace();
}; 

void rectangle::displace()
{
    
    
	std::cout<<"Area is "<<area()
	<<", perimeter is "<<perimeter()<<std::endl;
}

int main()
{
    
    
	rectangle r1,r2(10,20);
	cout<<r1.area()<<endl;     
	r2.displace();
}

Asignación de memoria de objetos

  • El espacio de memoria ocupado por el objeto es igual a la suma del tamaño de todas las variables miembro y las funciones miembro no se colocan en la memoria del objeto.
  • Cada objeto tiene su propio espacio de almacenamiento

Usar funciones miembro y métodos de variables miembro

  1. Objeto. Variable miembro / Método miembro
  2. Puntero -> nombre del miembro
rectangle r1(10,20),r2;
rectangle* p =&r1;
p->displace();
  1. Nombre de referencia. Nombre del miembro

Alcance accesible

  1. privado (predeterminado), no se puede acceder fuera de la clase. El mecanismo de configuración de miembros privados se llama oculto. Si quieres acceder, debes pasar la función de miembro.
  2. público
  3. protegido

Sobrecarga de funciones miembro y parámetro predeterminado

Sí, las funciones miembro también se pueden sobrecargar y los parámetros predeterminados, que se omiten ... (evite los problemas de ambigüedad muy bien)

int val(int x = 0) ;
void val() ; 
//这样可能会二义性

Supongo que te gusta

Origin blog.csdn.net/ZmJ6666/article/details/108548666
Recomendado
Clasificación