Nr. this
Schlüsselwort in C++ ist eine Referenz auf das vorliegende Objekt und wird tatsächlich explizit an die Mitgliedsfunktionen auf ABI-Ebene übergeben. Explizit Passieren der beste Entsprechung in C. Note einen Zeiger auf das Objekt (als ersten Parameter) in Funktion ist, dass dies bedeutet
struct foo {
int value;
int (*func)(struct foo *, int);
};
void foo_bar(struct foo *f, int value)
{
f->value = value;
}
dh die Zeiger auf das Objekt als ersten Parameter übergeben wird, anstatt die Struktur selbst. Dies macht es explizit, dass das Objekt als Referenz übergeben wird, und erleichtert das Verständnis und die Pflege dieses Codes.
Es ist nicht vernünftig Funktionen in einer Programmiersprache gültig zu sein in einer anderen Programmiersprache zu sehen erwarten, auch wenn die beiden irgendwie verwandt sind.
Sie sehen, jede Programmiersprache hat ihren eigenen Ansatz zur Problemlösung, ihre eigenen paradigm. Da es keine universellen besten Paradigma möglich ist, werden Probleme am besten mit einer Programmiersprache gelöst, die das am besten anwendbare/effiziente/nützliche Paradigma hat. Beispielsweise schreiben Sie kein C++ - Programm, um allgemeine Befehlszeilenaufgaben zu beschleunigen. Sie verwenden stattdessen ein Shell-Skript oder eine andere einfache Skriptsprache.
Wenn Sie als Programmierer von einem Programmiersprachenparadigma zu einem anderen wechseln können, haben Sie die Möglichkeit, ein Problem aus verschiedenen Blickwinkeln zu betrachten. Betrachtet man aktuelle Software-Projekte, werden die robustesten, vitalsten und effizientesten von Programmierern geschrieben, die diese Fähigkeit besitzen.
Deshalb habe ich oben gesagt, dass es nicht vernünftig ist zu erwarten, dass die Eigenschaften oder das Paradigma einer Programmiersprache für andere portierbar sind. Das sollten Sie nicht tun, denn es ist gleichbedeutend mit einem einzigen Werkzeug und allen Problemen, als wäre Ihr Werkzeug das einzig mögliche Werkzeug, um sie zu lösen. (Wenn alles, was Sie haben, ein Hammer ist, sehen alle Probleme wie Nägel aus.) Das Lernen und insbesondere das Lernen, die verschiedenen Paradigmen in verschiedenen Programmiersprachen zu akzeptieren, macht einen besseren Programmierer, einen besseren Problemlöser.
Jedes Objekt in C++ hat Zugriff auf seine eigene Adresse über einen wichtigen Zeiger namens "dieser" Zeiger. Der "This" -Zeiger wird als verstecktes Argument an alle nicht statischen Mitgliedsfunktionsaufrufe übergeben. Ich denke, es gibt keine Notwendigkeit, das Verhalten von c zu ändern, denn c ist eine Grundlage von C++, wenn Sie das Verhalten von c ändern, wie können Sie dann in beiden Sprachen einen Unterschied machen. –
Wenn Sie dies verwenden müssen, warum nicht nur C++ verwenden? @ SumitGemini sagte, Sie können einen dieser Zeiger manuell übergeben. – brianxautumn