Condivisione della tecnologia

C Nozioni di base per iniziare (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Benvenuti a tutti sul blog di Pirate Cat Ou——

Dopo una lunga pausa, continuiamo a studiare intensamente!

Sommario

1.spazio dei nomi spazio dei nomi

Il valore di esistenza dello spazio dei nomi:

Definizione dello spazio dei nomi:

Utilizzo dello spazio dei nomi:

2.Funzioni di input e output C++

utilizzo:

3.Parametri predefiniti

4. Sovraccarico di funzioni

Conclusione:


1.spazio dei nomi spazio dei nomi

Il valore di esistenza dello spazio dei nomi:

In C/C++, ci sono un gran numero di variabili, funzioni e classi da apprendere in seguito. I nomi di queste variabili, funzioni e classi esisteranno tutti nell'ambito globale, il che potrebbe causare molti conflitti.Lo scopo dell'utilizzo degli spazi dei nomi è localizzare i nomi degli identificatori per evitare conflitti di nomi o inquinamento dei nomi. La parola chiave namespace sembra risolvere questo problema.

In breve, quando ci sono più variabili con lo stesso nome nello stesso progetto, si possono prevenire conflitti di denominazione o inquinamento dei nomi e anche facilitare la distinzione. Si può dire che sia indispensabile nello sviluppo di progetti su larga scala.

Definizione dello spazio dei nomi:

Namespace è la parola chiave dello spazio dei nomi. Aggiungi il nome dello spazio dei nomi dopo la parola chiave e aggiungi {} per limitare l'ambito.

  1. namespace hdmo
  2. {
  3. int a = 1;
  4. }

Avviso: Non è necessario aggiungere ' ; ' dopo l'ultimo ' } ' del namespace, che è diverso da una struttura e simile a una funzione.

L'essenza di uno spazio dei nomi è che creiamo un dominio indipendente dall'ambito globale. Proprio come ogni funzione ha uno scopo, l'ambito dei parametri in ciascuna funzione rientra nell'ambito della funzione.Lo stesso vale per gli spazi dei nomi EachL'ambito di funzioni, variabili, ecc. nello spazio dei nomi rientra nell'ambito limitato dello spazio dei nomi e deve essere utilizzato chiamando lo spazio dei nomi., ma va notato cheLe variabili di funzione nello spazio dei nomi, ecc., hanno un ciclo di vita globale

Lo spazio dei nomi può essere definito solo nell'ambito globale e può anche essere annidato.

Nello stesso progetto, gli spazi dei nomi con lo stesso nome verranno considerati lo stesso spazio dei nomi.

  1. namespace hdmo
  2. {
  3. int a = 1;
  4. }
  5. namespace hdmo
  6. {
  7. int b = 1;
  8. }

Al momento i due hdmo rappresentano lo stesso spazio dei nomi.

La libreria standard C++ è archiviata nello spazio dei nomi chiamato std (standard) per evitare conflitti con funzioni in altri linguaggi. Questo è il motivo per cui i programmi C++ contengono fondamentalmente un file

using namespace std;

Solo per includere la libreria standard C++.

Utilizzo dello spazio dei nomi:

Poiché uno spazio dei nomi è un dominio, se desideri utilizzare le sue variabili di funzione e altri contenuti esternamente, devi utilizzare un operatore come una struttura per ottenere questa operazione.

L'operatore di chiamata di uno spazio dei nomi è composto da due punti::

  1. #include <stdio.h>
  2. namespace hdmo
  3. {
  4. int a = 1;
  5. }
  6. int a = 2;
  7. int main()
  8. {
  9. printf("%dn", a);
  10. printf("%dn", ::a);
  11. printf("%dn", hdmo::a);
  12. return 0;
  13. }

Dai risultati di output, possiamo sapere che: quando la parte anteriore di :: è vuota, le variabili dello scope globale vengono chiamate per impostazione predefinita.

Esistono tre modi per utilizzare variabili, funzioni, ecc. nello spazio dei nomi:

1.visita unica: Utilizzare :: per accedere individualmente a variabili o funzioni in uno spazio dei nomi, che è il modo più sicuro per utilizzarlo;

2.Espansione singola : Utilizzare using per espandere solo una variabile o una funzione Dopo l'espansione, il suo ambito diventa globale e non è più limitato dallo spazio dei nomi. Si consiglia di utilizzare questo metodo in condizioni comuni senza conflitti.

3.Completamente ampliato: Espande direttamente tutti gli spazi dei nomi specificati. Non è consigliato per l'uso nei progetti Il rischio di conflitto è elevato e può essere utilizzato in piccoli programmi (la libreria standard della libreria standard C++ è completamente espansa, quindi quando utilizziamo cin e cout. , Non è necessario prefissare std::)

2.Funzioni di input e output C++

Nel linguaggio C, le nostre istruzioni di input e output sono rispettivamente scanf e printf. C++ è compatibile anche con le istruzioni di input e output del linguaggio C, ma ha anche le proprie funzioni di input e output, vale a dire cin e cout.

Per utilizzare le funzioni cin e cout, è necessario includere<iostream>Libreria di flussi di input e output standard e deve includere la libreria di funzioni standard C++

  1. #include <iostream>
  2. using namespace std;

utilizzo:

Quando usi cin, usa '&gt;&gt;' per entrare;

Quando si utilizza cout, utilizzare '&lt;&lt;' per l'output.

&lt;&lt; è l'operatore di inserimento del flusso, &gt;&gt; è l'operatore di estrazione del flusso (&lt;&lt; e &gt;&gt; rappresentano anche gli operatori di spostamento a sinistra e spostamento a destra nel linguaggio C)

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a = 0;
  6. cin >> a;
  7. cout << a << endl;
  8. printf("%dn", a);
  9. return 0;
  10. }

Innanzitutto possiamo semplicemente intendere endl come interruzione di riga 'n'; la parte base non verrà spiegata troppo e verrà aggiunta in studi futuri.

Possiamo vedere dal codice sopra che cin e cout non usano %d, %c, ecc. come scanf e printf per controllare il formato di input e output delle variabili Questo perchécin e cout possono identificare automaticamente i tipi di variabili e dati, che è un posto relativamente conveniente.

Nell'ambiente VS2022, il codice precedente non contiene<stdio.h> , puoi anche utilizzare le funzioni scanf e prinf, perché in VS<iostream>indirettamente incluso<stdio.h>, quindi può essere utilizzato direttamente, ma potrebbe essere necessario includerlo in altri ambienti di compilazione.<stdio.h> .

Quando si desidera ottenere operazioni come il controllo della precisione, si consiglia di utilizzare direttamente i metodi di input e output del linguaggio C. Sarà più problematico implementare questa operazione in C++.

Va notato che scanf e printf sono più veloci di cin e cout Nella competizione, scanf e printf possono essere utilizzati direttamente nella questione del tempo di esecuzione bloccato. Il seguente codice può migliorare l'efficienza di cin e cout, ma questo articolo n spiegazione ancora.

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. // 在io需求⽐较⾼的地⽅,如部分⼤量输⼊的竞赛题中,加上以下3⾏代码
  6. // 可以提⾼C++IO效率
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(nullptr);
  9. cout.tie(nullptr);
  10. return 0;
  11. }

3.Parametri predefiniti

I parametri predefiniti servono a fornire ai parametri della funzione un valore predefinito quando si dichiara o si definisce una funzione. Quando si chiama la funzione, se il parametro predefinito non passa un valore, verrà utilizzato il valore predefinito definito. Se viene passato un valore, verrà utilizzato il valore passato verrà utilizzato il valore.

I parametri predefiniti sono divisi in completamente predefiniti e semi-predefiniti; completamente predefiniti significa che a tutti i parametri formali vengono assegnati valori predefiniti e semi-predefinito significa che ad alcuni parametri formali vengono assegnati valori predefiniti. E C++ stabilisce che i parametri semi-predefiniti devono essere impostati consecutivamente da destra a sinistra e non possono saltare ai valori predefiniti a intervalli.

  1. #include <iostream>
  2. using namespace std;
  3. namespace hdmo
  4. {
  5. //全缺省
  6. int Fun1(int x = 0, int y = 0)
  7. {
  8. return x + y;
  9. }
  10. //半缺省
  11. int Fun2(int x, int y = 0)
  12. {
  13. return x + y;
  14. }
  15. }
  16. int main()
  17. {
  18. cout << hdmo::Fun1() << endl;//全缺省可以不传参
  19. cout << hdmo::Fun1(1) << endl;
  20. cout << hdmo::Fun1(1,1) << endl;
  21. /*
  22. cout << hdmo::Fun2() << endl;//半缺省不能不传参
  23. */
  24. cout << hdmo::Fun2(2) << endl;
  25. cout << hdmo::Fun2(2,2) << endl;
  26. return 0;
  27. }

Il risultato del codice sopra è:

Il semi-default deve garantire la definizione e la continuità dei parametri di default da destra a sinistra, con i parametri normali a sinistra e i parametri di default a destra.

4. Sovraccarico di funzioni

L'overload delle funzioni significa che sono presenti più funzioni con lo stesso nome di funzione contemporaneamente. Lo stesso nome della funzione rappresenta più funzioni contemporaneamente, il che significa sovraccarico.

La differenza tra loro è determinata dal tipo e dal numero del parametro e non ha nulla a che fare con il tipo del valore restituito.Non è possibile eseguire l'overload di due funzioni con lo stesso nome che hanno solo tipi di valore restituito diversi

  1. #include <iostream>
  2. using namespace std;
  3. namespace hdmo
  4. {
  5. int Add(int x, int y)
  6. {
  7. return x + y;
  8. }
  9. double Add(double x, int y)
  10. {
  11. return x + y;
  12. }
  13. double Add(int x, double y)
  14. {
  15. return x + y;
  16. }
  17. double Add(double x, double y)
  18. {
  19. return x + y;
  20. }
  21. }
  22. int main()
  23. {
  24. using hdmo::Add;
  25. cout << Add(1, 1) << endl;
  26. cout << Add(1.1, 1) << endl;
  27. cout << Add(1, 1.1) << endl;
  28. cout << Add(1.1, 1.1) << endl;
  29. return 0;
  30. }

Il risultato è:

Dal codice sopra, possiamo vedere che l'uso dell'overloading può farci usare le funzioni in modo più conveniente. Nel linguaggio C, per ottenere l'effetto di cui sopra, dobbiamo utilizzare quattro diversi nomi di funzione per definire quattro funzioni e usarle in modo diverso quando utilizzate. Con l'overload in C++, possiamo unificare tutte le funzioni di addizione poiché non è necessario distinguere un nome quando lo usi, usalo direttamente, il che è molto conveniente.

Conclusione:

Questo articolo sulle nozioni di base per iniziare con C++ finirà qui Più avanti continueremo a spiegare altre conoscenze di base. Benvenuti a tutti per continuare a venire a darci consigli.

Se avete delle mancanze potete segnalarle nei messaggi privati ​​o nell'area commenti!

Pagina iniziale:Blog del gatto pirata Ou-CSDN

Ecco il piccolo gabbiano! Alla prossima~(*¯︶¯*)~