2021-02-25 Faça check-in e aprenda C ++ para o décimo primeiro dia


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

Acho que você gosta

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