![]() |
C++: Funktion außerhalb der Klasse aufrufen mit gl. Namen
Hallo;
ich bin gerade dabei für meine Programme ein paar Funktionen der WinSock-API für Streams (winsock2.h) in eine Klasse zu kapseln. Dabei habe ich das Problem dass sowohl bei der WinSock-API als auch in meiner Klasse eine Funktion namens connect existiert. In der Memberfunktion connect meiner Klasse rufe ich das connect der WinSock-API auf. Doch der Compiler versteht unter connect an dieser stelle nur das connect meiner eigenen Klasse. Wie kann ich explizit angeben, dass ein anderes connect gemeint ist? |
Re: C++: Funktion außerhalb der Klasse aufrufen mit gl. Name
Da sich die API-Funktionen meist im globalen Scope befinden, wird meist folgende Variante verwendet...
Kurzfassung (C++):
Code:
Langfassung (C/C++):
::foo();
Code:
#ifndef USE_GLOBAL_NAMESPACE
#ifdef _cplusplus #define USE_GLOBAL_NAMESPACE :: #else #define USE_GLOBAL_NAMESPACE #endif #endif (* ... *) USE_GLOBAL_NAMESPACE(foo)(); |
Re: C++: Funktion außerhalb der Klasse aufrufen mit gl. Name
also unter delphi reicht es einfach den unit namen vorran zu fügen.
Delphi-Quellcode:
ob jedoch unter C++ geht weiß ich nicht
unitname.funktionsname
|
Re: C++: Funktion außerhalb der Klasse aufrufen mit gl. Name
Das bezweifle ich, da es in C++ keine Units gibt ;)
Es gibt nur Include-Dateien (oder Header), die werden vor dem Kompilieren in den Code des Hauptprogramms "eingefügt" - allerdings werden sie nicht ständig neu kompiliert, sondern nur dann, wenn sich etwas geändert hat. (das ist doch richtig so, oder? :gruebel: ) Aber die C++-Lösung funktioniert. Danke! Die C-Variante brauche ich nicht weil mein Header nur mit C++ funktioniert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz