Directorio de artículos
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