2021-02-25 Checken Sie ein und lernen Sie C ++ für den elften Tag


Eins, Klasse und Objekt

1 Paket

Weitere Informationen finden Sie im Inhalt des achten Tages

2. Initialisierung und Bereinigung von Objekten

Einzelheiten entnehmen Sie bitte dem neunten Tag.
Einzelheiten entnehmen Sie bitte dem zehnten Tag.

3. C ++ Objektmodell und dieser Zeiger

Weitere Informationen finden Sie im Inhalt des zehnten Tages

4. Tomomoto

Im Programm gibt es einige private Attribute. Wenn Sie auf bestimmte Funktionen oder Klassen außerhalb der Klasse zugreifen möchten, müssen Sie die Technologie von Freunden verwenden

Der Zweck von Freunden besteht darin, einer Funktion oder Klasse den Zugriff auf private Mitglieder einer anderen Klasse zu ermöglichen

Die Schlüsselwörter von Freunden sind Freund

Drei Erkenntnisse von Freunden:

  • Global fungiert als Freunde
  • Klassenfreund
  • Mitglied fungiert als Freunde

(1) Global fungiert als Freunde

Beispiel

#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) Freunde finden

Beispiel

#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) Mitgliederfunktionen sind Freunde

Beispiel

#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. Überlastung des Bedieners

Konzept: Definieren Sie den vorhandenen Operator neu und geben Sie ihm eine weitere Funktion zur Anpassung an verschiedene Datentypen

(1) Plus-Betreiber

Rolle: Um das Hinzufügen von zwei benutzerdefinierten Datentypen zu erreichen

[Hinweis] Der Lernkurs ist Dark Horse Program C ++ Tutorial

Ich denke du magst

Origin blog.csdn.net/qq_42616280/article/details/114077049
Empfohlen
Rangfolge