C++-kode i Objective-C Macintosh-applikationer

Objective-C leverer objektorienterede funktioner til Macintosh-applikationsudvikling, såsom arv og polymorfi. Sproget er baseret på programmeringssproget C; derfor kan du bruge din C-programmeringsviden til at kode inden for Objective-C. Objective-C++ er en bromekanisme, der tillader Objective-C kildemoduler at arbejde med Objective-C++ klasser, som kunne kompilere og linke til C++ kodebiblioteker.

Det følgende simple eksempel på en kvadratisk matrix viser indholdet af en C++ header-fil for en Matrix-klasse. Matrix-klassen leveres med standardkonstruktøren og -destruktoren til en C++-klasse, og metoderne er, hvad du ville forvente for et grundlæggende kvadratisk matrixobjekt:

klasse Matrix { public: Matrix( int inSize ); virtuel ~Matrix(); int getSize( void ); int getDeterminant( void ); void setElement( int inRow, int inCol, int inValue ); int getElement( int inRow, int inCol ); Matrix operator+( const Matrix& inAdddend ); privat: int m_size; int[][] m_elements; };

For at bruge Objective-C++ skal dine Objective-C++ klassemoduler bruge filtypenavnet .mm. Dette fortæller Xcodes compiler, at klassen skal kompileres ved hjælp af Objective-C++, som vil give din klasse mulighed for at bruge C++ sprognøgleord. Ved at bruge Objective-C++ kan din app oprette et Matrix-objekt til at udføre grundlæggende handlinger, såsom at tilføje to Matrix-objekter sammen. Dette antager, at Objective-C++-kildemodulet har #importeret filen C++ Matrix.h:

- (void)addTwoMatrices { Matrix matrixOne( 3 ); // 3x3 matrix Matrix matrixTwo( 3 ); // anden int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // sæt matrix ens elementer til deres værdier matrixOne.setElement( rowIndex, colIndex, XXX ); // sæt matrix to's elementer til nogle andre værdier matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matrix matrixSum = matrixOne + matrixTo;

Med Objective-C++ er dine apps i stand til at drage fordel af alle de tilgængelige tredjepartsbiblioteker skrevet til C++.


Snagit 2018 anmeldelse Hvad er nyt siden version 13

Snagit 2018 anmeldelse Hvad er nyt siden version 13

TechSmith Snagit er vores foretrukne screenshot- og billedredigeringssoftware. Tjek de nye funktioner i Snagit 2018!

8 onlineværktøjer til at tegne diagrammer og rutediagrammer

8 onlineværktøjer til at tegne diagrammer og rutediagrammer

Har du brug for at oprette diagrammer eller rutediagrammer og vil du ikke installere ekstra software? Her er en liste over online diagramværktøjer.

Kan Spotify ikke afspille den aktuelle sang? Sådan rettes

Kan Spotify ikke afspille den aktuelle sang? Sådan rettes

At have et hus fyldt med trådløst tilsluttede enheder og streamingtjenester som Spotify er fantastisk, indtil tingene ikke fungerer, og du finder interessante løsninger.

Hvad er en NVMe M.2 SSD, og ​​hvor hurtig er den?

Hvad er en NVMe M.2 SSD, og ​​hvor hurtig er den?

NVMe M.2 SSD er det seneste inden for computerharddiskteknologi. Hvad er det, og hvor hurtigt er det i forhold til ældre harddiske og Solid State Drives (SSD)?

Sonos vs. AirPlay: Hvorfor jeg valgte AirPlay til Whole House Audio

Sonos vs. AirPlay: Hvorfor jeg valgte AirPlay til Whole House Audio

Sonos er den perfekte streaming-lydløsning, der starter ved $400 for to højttalere. Men med den rigtige opsætning kan AirPlay være gratis. Lad os gennemgå detaljerne.

Google Backup and Sync App erstatter Fotos og Drev

Google Backup and Sync App erstatter Fotos og Drev

Google Backup and Sync er en ny app, der synkroniserer til Fotos og Drev. Læs videre for at se, hvordan det klarer sig i forhold til OneDrive, Dropbox, Backblaze og Crashplan.

Ledningsskæring: Gennemgang af MyIPTV med SOPlayer

Ledningsskæring: Gennemgang af MyIPTV med SOPlayer

MyIPTV er en kabelskæringstjeneste, der bruger SOPlayer-appen til flere platforme og leverer tv, film og andre former for medier til en betalt betaling

Logitech Oplyst Living-Room Keyboard K830

Logitech Oplyst Living-Room Keyboard K830

Logitech udgav for nylig sit Illuminated Living-Room Keyboard K830, der er tænkt som en hjemmeunderholdnings-ledsager. Her er vores anmeldelse af enheden.

CloudHQ Opdateret: Hurtigere synkronisering, Rediger Dropbox-filer fra Google Docs

CloudHQ Opdateret: Hurtigere synkronisering, Rediger Dropbox-filer fra Google Docs

Her er et kig på opdateringen, der for nylig blev udgivet til CloudHQ, og hvordan den fungerer. Læs videre for at finde mere.

Hvad er OnePlus 6T Android-telefonen?

Hvad er OnePlus 6T Android-telefonen?

OnePlus 6T er en førsteklasses flagskibskvalitet Android-telefon, som sælges med rabat i forhold til Apple iPhone, Google Pixel 3 eller Samsung Galaxy S9.