Ich lese C++ in einfachen Schritten und stieß auf ein Stück Code für Referenzen und Zeiger, die ich nicht verstehe.Deklaration in C++
Der Code lautet void (* fn) (int& a, int* b) = add;
. Soweit ich weiß, hat dies keine Auswirkungen auf das Programm selbst, möchte aber wissen, was dieser Code tut.
#include <iostream>
using namespace std;
void add (int& a, int* b)
{
cout << "Total: " << (a+ *b) << endl;
}
int main()
{
int num = 100, sum = 200;
int rNum = num;
int* ptr = #
void (* fn) (int& a, int* b) = add;
cout << "reference: " << rNum << endl;
cout << "pointer: " << *ptr << endl;
ptr = ∑
cout << "pointer now: " << *ptr << endl;
add(rNum, ptr);
return 0;
}
[Heres] (http://cdecl.org/) eine sehr gute Website für Erklärungen. Es hat jedoch Probleme mit diesem. – yizzlez
Dieser Befehl weist die Variable 'fn', einen Zeiger auf Funktion, den Wert eines Zeigers auf die Funktion' add' zu. 'fn' wird später nicht verwendet und die Zuweisung ist im Wesentlichen nutzlos. –
@awesomeyi Da Referenzen nicht in C sind, können Sie auch die Argumente in den Deklarationen dort nicht benennen. – Barry