Artigo Diretório
Um, classe e objeto
1. Pacote
Veja o conteúdo do oitavo dia para obter detalhes
2. Inicialização e limpeza de objetos
Para obter detalhes, consulte o nono dia.
Para obter detalhes, consulte o décimo dia.
3. Modelo de objeto C ++ e este ponteiro
Veja o conteúdo do décimo dia para obter detalhes
4. Tomomoto
No programa, existem alguns atributos privados. Se você deseja acessar algumas funções especiais ou classes fora da classe, você precisa usar a tecnologia de amigos
O objetivo dos amigos é permitir que uma função ou classe acesse membros privados de outra classe
As palavras-chave dos amigos são amigo
Três realizações de amigos:
- Global funciona como amigos
- Amigo de classe
- Membro funciona como amigo
(1) Funções globais como amigos
Exemplo
#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) Fazer amigos em turma
Exemplo
#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) Funções de membro são amigos
Exemplo
#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 do operador
Conceito: redefinir o operador existente e dar a ele outra função para se adaptar a diferentes tipos de dados
(1) Operador Plus
Função: para realizar a operação de adicionar dois tipos de dados personalizados
[Nota] O curso de aprendizagem é - Dark Horse Program C ++ Tutorial