C ++ protetto

C ++ protetto

Come molti altri linguaggi di programmazione, C ++ ci fornisce anche la funzionalità dei dati che si nascondono per scopi di sicurezza. Usiamo i modificatori di accesso all'interno di un programma C ++ per proteggere i nostri dati a diversi livelli di sicurezza. C ++ include gli specificatori di accesso pubblico, privato e protetto per garantire le sue variabili e funzioni. L'impeditore di accesso protetto è un po 'diverso sia dal privato che dal pubblico. Questo articolo si concentrerà sul modificatore di accesso "protetto" negli esempi di codice C ++. Quindi iniziamo. Apri l'applicazione Shell, crea un nuovo file C ++ e aprilo nell'editor.

Esempio 01: pubblico vs. Privato

Prima di concentrarci sul specificatore di accesso protetto, dobbiamo imparare il funzionamento di un specificatore di accesso pubblico e privato. Dopo aver usato lo spazio dei nomi C ++ all'inizio di un codice, abbiamo dichiarato un test di classe con una variabile pubblica "A" e una variabile privata "B". Abbiamo inizializzato un oggetto "t" di una classe di test nel metodo principale ().

Il valore 10 è assegnato alla variabile "a", che è pubblico. Usando l'oggetto "cout", abbiamo visualizzato il valore della variabile "A" usando l'oggetto "t". Lo stesso oggetto di classe di test "T" è stato utilizzato qui per assegnare il valore "12" al membro dei dati privati ​​"B". Usando di nuovo l'oggetto "cout", utilizziamo l'oggetto "t" per visualizzare il valore "b" variabile. Infine, l'istruzione Return 0 uscirà con successo al programma. È tempo di salvare prima questo nuovo codice C ++ e compilarlo sulla shell.

È necessario assicurarsi che il compilatore C ++ "G ++" sia installato e completamente configurato nel sistema. Quindi, abbiamo provato l'istruzione del compilatore G ++ sulla shell seguendo il nome di un file "Protetto.CC ". Esecuzione di questa istruzione del compilatore, abbiamo l'errore sulla riga 13 quando assegniamo il valore alla variabile privata "B" usando l'oggetto "T". Questo perché la variabile privata nel test della classe non può essere utilizzata al di fuori di questa classe, i.e., In qualsiasi funzione o classe. Il modificatore di accesso pubblico consentirà a ogni variabile e funzione di essere disponibile a tutti. Al contrario, il modificatore di accesso privato non consente l'accesso di variabili e funzioni a chiunque, io.e., ogni classe.

Vediamo come possiamo usare i membri dei dati privati ​​per essere visualizzati sulla shell. Abbiamo aggiornato lo stesso file C ++ nel test di classe dichiarando le due funzioni pubbliche, get () e set (). L'implementazione di entrambe le funzioni è stata svolta al di fuori della classe "test". La funzione "get ()" viene utilizzata per restituire il valore del membro dei dati privati ​​"y" alla funzione principale () per la visualizzazione.

La funzione set () utilizza il valore passato dalla funzione principale () e la assegna al membro dei dati privati ​​"y" del test di classe. All'interno del metodo principale (), abbiamo utilizzato l'oggetto "t" del test di classe per assegnare il valore "10" alla variabile pubblica "x" del test di classe. L'istruzione Cout visualizza il valore di "x" sulla shell. Ora, abbiamo chiamato la funzione set () per oggetto "t" per passare il valore "14" al membro dei dati privati ​​"y" della classe "test". L'istruzione Cout ha chiamato la funzione "get" per visualizzare il valore della variabile "y" sulla shell. Questo codice ci consentirà di visualizzare il valore del membro dei dati privati ​​sulla shell utilizzando le stesse funzioni di dati pubblici di classe. Salviamo questo codice ed eseguiamolo:

Abbiamo sia i valori per "x" che "y" visualizzati durante l'esecuzione di questo codice recentemente aggiornato:

Esempio 02:

Diamo un'occhiata al modificatore di accesso protetto ora. Abbiamo aperto il file di codice e aggiornato un po '. Aggiunta le librerie richieste insieme allo spazio dei nomi C ++. Dichiarato una classe genitore e una classe figlio derivata dal "genitore". La classe genitore contiene una variabile protetta "x" di tipo intero. La classe figlio contiene solo due funzioni pubbliche, i.e., impostare e ottenere. Dopo le classi, abbiamo implementato entrambe le funzioni della classe figlio impostando il valore di "x" e tornando alla funzione principale ().

La funzione principale () è quella di creare l'oggetto "C" per la classe figlio. Questo oggetto viene utilizzato per impostare il valore per la variabile "x" e visualizzarlo sulla shell tramite il metodo get (). L'uso di un oggetto per assegnare il valore alla variabile "x" mostrerà un errore all'esecuzione. Quindi, salva il codice ed esci dal file.

L'output è lo stesso che previsto, io.e., errore.

Per evitare questo errore dopo aver assegnato il valore a un membro dei dati protetti, dovremmo utilizzare le funzioni di dati pubblici, i.e., Imposta e ottieni funzioni nella classe figlio. Utilizzando la funzione set (), possiamo assegnare il valore alla variabile protetta "x" come abbiamo fatto nel seguente codice di immagine. Successivamente, possiamo facilmente utilizzare la funzione get () per visualizzare il membro dei dati protetto sulla shell all'interno dell'istruzione oggetto Cout. Salva questo codice e compilalo dopo:

Dopo aver compilato il codice aggiornato, questa volta non abbiamo errori di compilation. Abbiamo il valore della variabile protetta "x" visualizzata sullo schermo con shell usando la query di esecuzione.

Esempio 03:

Diamo un'occhiata a un altro esempio per utilizzare il modificatore di accesso protetto. All'interno di questo esempio, utilizzeremo la multi-eredità per renderlo più chiaro e aggiungere tre classi A, B e C. La classe A è la classe genitore di B e B è il genitore di C. Sia A che B contengono le variabili protette "X" e "Y". La classe B e C contiene funzioni come membri dei dati pubblici, i.e., set () e get ().

La classe B utilizza le sue funzioni per impostare e restituire il valore per il membro dei dati protetti di classe A "X" in quanto B è la sua classe derivata. Al contrario, la Classe C utilizza le sue funzioni per impostare e ottenere il valore "Y" dalla Classe B come classe C è la sua classe derivata. All'interno della funzione del codice driver principale (), abbiamo creato un oggetto di classe B e impostare il valore per la variabile "x". Lo stesso oggetto visualizza il valore della variabile "x" sulla shell. L'oggetto Classe C è stato creato per impostare il valore per la variabile protetta "Y" e visualizzarlo sulla shell. Eseguiamo il seguente codice per vedere i risultati:

L'output mostra l'uso di set () e get () le funzioni stanno sostituendo il valore già inizializzato per entrambe le variabili protette.

Conclusione:

Si trattava di utilizzare un modificatore di accesso protetto per proteggere i membri dei dati per le classi in C++. Per renderlo più chiaro, abbiamo anche discusso dell'esempio dell'utilizzo di membri di dati pubblici e privati. Inoltre, abbiamo discusso dell'eredità per dimostrare il lavoro e l'uso di specificatori di accesso sicuro nel nostro codice. L'uso della funzione set () e get () è un vantaggio per evitare errori durante l'esecuzione di questo articolo. Speriamo che tu abbia trovato questo articolo utile. Controlla gli altri articoli di suggerimento Linux per ulteriori suggerimenti e tutorial.