Et par c++ spørgsmål

Tags:    programmering

Hey

Jeg programmere normalt scripts til et 3D program kaldet Maya i et sprog der hedder MEL.
Men nu vil jeg gerne lære C++ fordi det vil gøre at jeg kan lave bedre scripts til Maya.
Jeg tror MEL minder en del om C++ men jeg har stadig en mange problemmer med ting jeg ikke forstår... Håber i vil hjælpe mig med dem.

f.eks i teksten:

class Posts5Cmd : public MPxCommand
{
public:
virtual MStatus doIt ( const MArgList& );
virtual MStatus undoIt();
virtual MStatus redoIt();
virtual bool isUndoable() const { return true; }

static void *creator() { return new Posts5Cmd; }
static MSyntax newSyntax();

private:
MDGModifier dgMod;
};



Hvad er Public og Private for noget ?
Hvad er Virtual? og Virtual Bool?
Hvad er Const?
Hvad er Static Void? og Static? og hvorfor er der en * foran creator?



const char *numberFlag = "-n", *numberLongFlag = "-number";
const char *radiusFlag = "-r", *radiusLongFlag = "-radius";
const char *heightFlag = "-he", *heightLongFlag = "-height";
const char *helpFlag = "-h", *helpLongFlag = "-help";



hvad er Const Char?



MSyntax Posts5Cmd::newSyntax()
{
MSyntax syntax;

syntax.addFlag( numberFlag, numberLongFlag, MSyntax::kLong );
syntax.addFlag( radiusFlag, radiusLongFlag, MSyntax::kDouble );
syntax.addFlag( heightFlag, heightLongFlag, MSyntax::kDouble );
syntax.addFlag( helpFlag, helpLongFlag );

return syntax;
}



hvorfor er der 2 :: efter hinanden i første linie?
"MSyntax syntax;" hvad præcis gør den her?.. Ligger nogen informationer ind i en variable eller?..



MStatus Posts5Cmd::doIt ( const MArgList &args )
{
int nPosts = 5;
double radius = 0.5;
double height = 5.0;



Hvad er Double?



Håber nogen kan hjælpe med de her spørgsmål..



1 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hejsa.
Jeg kan ikke give dig det hele lige nu, men noget kan jeg svare på.

public, protected og private beskriver adgangen til classes, methoden eller attributten/variabelen.

public betyder alle kan få adgang.

private betyder at kun klasse medlemmer (objecter af samme klasse) kan få adgang.

Protected er en mellem ting mellem public og private og betyder at klasse medlemmer og arvende klasser (objecter af samme klasse eller klasser der har arvet fra den) kan få adgang.


Bool går jeg ud fra er det samme som Bolean, som er en værdi der kan være false eller true, men jeg er ikke sikker.


Static betyder at der laves en implicit object instans af klassen, kun en enkelt for hele app space, og den kan kun tilgås igennem methoder og vars der er definerede som static .. men tilgengæld behöver man ikke have et object af typen for at kalde dette statiske object .. man bruger blot klasse navnet istedet for en instans.
Hvis fx klassen Kurt har static void etellerandet, kan man sige Kurt.etellerandet() , istedet for at sige
Kurt t = new Kurt(); t.etellerandet();
Det man bruger det til er fx at gemme konstanter i og cache data som skal bruges globalt igennem en application.
Giver rigtig god performance hvis man bruger det rigtigt. (det tager tid at lave objecter, og med static laves der kun et enkelt statisk object og kun en gang pr app runtime).

Nå .. ikke mere tid nu ... later ;)




t