2021-02-25 Regístrese y aprenda C ++ por undécimo día


Uno, clase y objeto

1. Paquete

Consulte el contenido del octavo día para obtener más detalles.

2. Inicialización y limpieza de objetos

Para obtener más información, consulte el noveno día.
Para obtener más información, consulte el décimo día.

3. Modelo de objetos de C ++ y este puntero

Consulte el contenido del décimo día para obtener más detalles.

4. Tomomoto

En el programa, hay algunos atributos privados. Si quieres acceder a algunas funciones especiales o clases fuera de la clase, necesitas usar la tecnología de amigos.

El propósito de los amigos es permitir que una función o clase acceda a miembros privados en otra clase.

Las palabras clave de amigos son amigo

Tres realizaciones de amigos:

  • Funciones globales como amigos
  • Amigo de clase
  • Los miembros funcionan como amigos

(1) Funciones globales como amigos

Ejemplo

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

class building
{
    
    
//加上此句后,即可访问类中私有成员
	friend void goodgay(building *building); 

public:
	building()
	{
    
    
		m_sittingroom = "客厅";
		m_bedroom = "卧室";
	}

public:
	string m_sittingroom;  //客厅

private:  //私有类属性,一般外部函数不可访问
	string m_bedroom;  //卧室
};

//全局函数
void goodgay(building *building)
{
    
    
	cout << "goodgay 全局函数正在访问:" << building->m_sittingroom << endl;
	cout << "goodgay 全局函数正在访问:" << building->m_bedroom << endl;
}

void test01()
{
    
    
	building building;
	goodgay(&building);

}

int main()
{
    
    
	test01();

	system("pause");
	return 0;
}

(2) Clase haciendo amigos

Ejemplo

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

class building;
class goodgay 
{
    
    
public:

	goodgay();
	void visit();
	building *Building;

};

class building
{
    
    
	friend class goodgay;
public:
	building();

public:
	string m_sittingroom;

private:
	string m_bedroom;
};

//类外写成员函数
building::building()
{
    
    
	m_sittingroom = "客厅";
	m_bedroom = "卧室";
}

goodgay::goodgay()
{
    
    
	Building = new building;

}
void goodgay::visit()
{
    
    
	cout << Building->m_sittingroom << endl;

	cout << Building->m_bedroom<< endl;
}

void test01()
{
    
    
	goodgay gg;
	gg.visit();
}
int main()
{
    
    
	test01();
	system("pause");
	return 0;
}

(3) Las funciones de los miembros son amigas

Ejemplo

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

class building;
class goodgay 
{
    
    
public:

	goodgay();
	void visit();//让visit访问私有成员
	void visit2();//不可访问
	building *Building;

};

class building
{
    
    
	friend void goodgay::visit();
public:
	building();

public:
	string m_sittingroom;

private:
	string m_bedroom;
};

//类外实现成员函数
building::building()
{
    
    
	m_sittingroom = "客厅";
	m_bedroom = "卧室";
}

goodgay::goodgay()
{
    
    
	Building = new building;

}
void goodgay::visit()
{
    
    
	cout << Building->m_sittingroom << endl;

	cout << Building->m_bedroom<< endl;
}
void goodgay::visit2()
{
    
    
	cout << Building->m_sittingroom << endl;
}

void test01()
{
    
    
	goodgay gg;
	gg.visit();
	gg.visit2();
}
int main()
{
    
    
	test01();
	system("pause");
	return 0;
}

5. Sobrecarga del operador

Concepto: redefinir el operador existente y darle otra función para adaptarse a diferentes tipos de datos

(1) Operador Plus

Rol: lograr la operación de agregar dos tipos de datos personalizados

[Nota] El curso de aprendizaje es-Tutorial de C ++ del Programa Dark Horse

Supongo que te gusta

Origin blog.csdn.net/qq_42616280/article/details/114077049
Recomendado
Clasificación