Programmera spel i C++ för nybörjare/Klass som funktionsvariabel
Detta är ett litet exempel för att visa hur man gör för att lägga in en klass som variabel i en funktion. Du kommer att göra det rätt ofta eftersom det är viktigt att kunna påverka klasser i spelet med olika funktioner, förutsatt att varje spelare i ditt spel är en klassinstans.
Här kommer ett enkelt exempel som enbart kräver att du har en fungerande VC++ express kompilator. Ingen grafik alls:
Variant ett
Om man tycker att det är jobbigt med pekare och pilar kan man använda adressreferensen.
#include "stdafx.h" #include <iostream> class student { public: char name[20]; int num; float score[3]; }; void print(class student &p); int main() { setlocale(LC_ALL, "swedish"); //svenska tecken vid cout class student stu; //Skapa en klassinstans som döps till stu stu.num=12345; //ge stu ett nummer strcpy_s(stu.name,"Jöns-Åke"); //Ge stu ett namn stu.score[0]=67.5; stu.score[1]=89; stu.score[2]=78.6; print(stu); //Kör funktionen return 0; } void print(class student &p) { std::cout<<p.num<<std::endl; std::cout<<p.name<<std::endl; std::cout<<p.score[0]<<std::endl; std::cout<<p.score[1]<<std::endl; std::cout<<p.score[2]<<std::endl; std::cout<<" "<<std::endl; }
Variant två
Gillar man pekare och pilar går den här lika bra:
#include "stdafx.h" #include <iostream> class student { public: char name[20]; int num; float score[3]; }; void print(class student *p); int main() { setlocale(LC_ALL, "swedish"); //svenska tecken vid cout class student stu; //Skapa en klassinstans som döps till stu stu.num=12345; //ge stu ett nummer strcpy_s(stu.name,"Jöns-Åke"); //Ge stu ett namn stu.score[0]=67.5; stu.score[1]=89; stu.score[2]=78.6; print(&stu); //Kör funktionen return 0; } void print(class student *p) { std::cout<< p -> num<<std::endl; std::cout<< p -> name<<std::endl; std::cout<< p -> score[0]<<std::endl; std::cout<< p -> score[1]<<std::endl; std::cout<< p -> score[2]<<std::endl; std::cout<<" "<<std::endl; }
Klasser som används i separat headerfil
[redigera]Det är mycket möjligt att du kommer att använda klasser i funktioner när du använder olika headerfiler någon gång i framtiden när du blivit skickligare på att programmera. Det enda du måste vara noga med då är att klassen deklareras i den andra headerfilen istället för i den vanliga kodfilen (och glöm inte #include <iostream> om du får en massa std:: fel). Se mer:
Programmera spel i C++ för nybörjare/C++ headerfiler och cpp filer