Artikelverzeichnis
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