Hvad er privat og offentligt i C ++?


Bedste svar

Offentlig og privat er beskyttelsesmekanismer for vores klasser i C ++. Hvis en medlemsvariabel / funktion er offentlig, kan den bruges hvor som helst inden for klassen. Hvis en medlemsvariabel / funktion er privat, kan den kun fås med medlemsfunktioner i den klasse.

Det er en god ide at brug privat, når du kan. Vi ønsker ikke, at slutbrugeren skal have adgang til data, som de ikke burde. Forestil dig for eksempel, at jeg skriver et program, der giver brugeren mulighed for at spille et kortspil. Først udskriver programmet de kort, som spilleren har. Derefter vil brugeren indtaste hvilket kort de gerne vil spille. I dette tilfælde vil jeg sandsynligvis have kortene til at være private på en eller anden måde. Jeg ønsker ikke, at brugeren skal ændre kortene og lave kort, der ikke findes.

For at få adgang til private medlemsvariabler / -funktioner kan du bruge offentlige funktioner. For eksempel, hvis jeg har en privat variabel kaldet int-nummer, kunne jeg skrive en offentlig medlemsfunktion for at få adgang til den variabel, kaldet getNumber (). På denne måde kan jeg få adgang til nummeret og bruge det overalt, men jeg behøver ikke bekymre mig om, at nummeret bruges forkert.

class Count{

public:

/*numberPub can be used anywhere in the class Count */

int numberPub;

/*This will return our private variable, numberPri. This way, we can return the variable, but we do not have to worry about access, such as a user modifying the value when they shouldn"t. */

int getNumberPri();

private:

/*numberPri cannot be used anywhere in the class Count. If we want to use numberPri in Count, we must use getNumberPri() to access it*/

int numberPri;

};

Svar

I C ++ privat betyder det, at det kun kan bruges af klassen internt og ikke kan tilgås uden for den nævnte klasse, mens offentlig betyder, at den kan fås uden for klassen.

Hvis du f.eks. laver en forekomst af din klasse, kan du ikke direkte få adgang til de private variabler og metoder, og det vil medføre en fejl, hvis du prøver at gøre det.

class Example

{

private:

int private\_data;

int public\_data;

};

int main(int argc, char* argv[])

{

// create an instance

Example example;

// public variables and methods can be accessed

example.public\_data = 100;

// private variables and methods can only be accessed inside

// the class

// this next line will cause an error

example.private\_data = 1;

return 0;

}

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *