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