Visual C++ :quelques trucs en vrac




Console Out :
#include <iostream.h>

main()
{ int imax = 3;
  
  /* affiche Sur ce pc, la taille d'un integer est : */
  cout << "Sur ce pc, la taille d'un integer est : \n" ;	

  /* affiche le 1er chiffre : 3 puis, sur la ligne suivante le 2ème chiffre : 4 */
  cout << "le 1er chiffre : " << imax << "\nle 2ème chiffre : " << imax+1 <<  "\n";	
  
  /* affiche Press any key to continue et attend  */
  return(0);	
}
\n pour sauter 1 ligne le 1er count affiche Sur ce pc, la taille d'un integer est :

le 2ème count
if condition machin; else truc;
if condition {} else {}
while (condition) action; do action while (condition); for (initialisation; condition; itération) action;

CaractèreDescriptionCode ASCII
'\a'signal sonore7
'\b'espace arrière8
'\f'saut de page12
'\n'nouvelle ligne10
'\r'retour chariot13
'\t'tabulation9
'\v'tabulation verticale11
'\\'barre oblique inverse \92
'\''apostrophe '39
'\"'guillemet "34
'\?'point d’interrogation ?63
\000notation octale 
\xhhhhéxadécimal 


Les deux derniers peuvent être écrits sans barre oblique inverse :

Type C++TraductionTaille
(octets)
Valeurs
boolbooléen1true ou false
unsigned short int  entier court non signé2de 0 à 65535
short intentier court2de -32768 à 32767
unsigned long intentier long non signé4de 0 à 4.294.967.295
long intentier long4de -2.147.483.648 à 2.147.483.647
intentier(16 bits)2de -32768 à 32767
intentier(32 bits)4de -2.147.483.648 à 2.147.483.647
unsigned intentier non signé (16 bits)2de 0 à 65535
unsigned intentier non signé (32 bits)  2de 0 à 4.294.967.295
chartexte1256 caractères
floatnombre décimal4de 1.2e-38 à 3.4e38
doublenombre double8de 2.2e-308 à 1.8e308


memmove( tab2, tab, 20*sizeof(int) ) ; |=> recopie les 20 1er entiers du tableau tab vers tab2.
memmove( tab2, tab, sizeof(tab) ); |=> recopie le tableau tab vers tab2.

strlen et strcpy (longueur et copie de chaînes) de .

inline

syntaxe : inline définition_de_fonction

Pour les petites fonctions, dont la séquence appel de fonction + retour de fonction, est plus longue en durée que la fontion elle-même. Le compilateur remplacera chaque appel de la fonction par son équivalent (définition).

pointeur sur rien

Dans ce cas, on peut placer n’importe quel autre pointeur dans ce dernier sans faire de changement de type : void *p = &k;

Les Structures & Classes

Attention les membres d'un structures sont par défaut publics, mais une classe ils sont privés.

Ex :
class CBoite	{
public:
  unsigned int m_L;	| pour la création d'objet	(ex : CBoite MaBoite)
  unsigned int m_l;	| pour l'utilisation des membres de cet objet ex :
  unsigned int m_H;	| MaBoite.m_L ; MaBoite.AffBoite1(MaBoite) ; this->m_L
//
// prototypes
  void AffBoite1(CBoite);	| Attention, définir les prototypes dans la classe implique que lorsqu'on définira cette fontion,
  void AffBoite2(CBoite*);| il faudra préciser la classe  à laquelle appartient cette fonction (ex CBoite::AffBoite1)
};
Inclure les fonctions dans la classe revient à faire un inline de cette fonction (sauf si elle contiennent une boucle ou un switch => warning du compilo).

On peut aussi mettre les prototypes à l'extérieur de la classe et définir les fonctions dans un autre .cpp . Mais attention dans chaque .cpp il faudra inclure le .h des prototypes et de la classe.

Les fonctions membres seront définies avec l'opérateur de résolution de portée :: nom_classe::nom_fonction

Par contre elle seront appelées comme un objet nom_classe.nom_fonction L'alternance de public/private est autorisée depuis la version 1.02 cd C++.

Un membre déclaré avec l'attribut static est partagé par tous les éléments de la classe et itinialisé à 0.

Contructeurs & Destructeurs

contructeur même nom que fonction, destructeur idem mais ~ avant.
si déclaré obligé de passer par lui
est juste après déclaration éléments membres
peut être défini à part comme les fonctions
Appel du contructeur par défaut : nom_objet instance_objet; ==> sans parenthèses.







sizeof() => nb octets