begin process at 2012 05 29 04:49:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Fonction et Classe Amie en c++?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction et Classe Amie en c++?

mardi 9 décembre 2008 à 17:44:35 | Fonction et Classe Amie en c++?

zied9992000

Bonjour , chui debutant en c++, Quelqu'un m'explique qu'est ce qu'une Class et Fonction amie et quels sont les avantages de leurs utilisations dans un programme c++, (un exemple si vous voulez) et merci d'avance les amis !
mardi 9 décembre 2008 à 20:00:48 | Re : Fonction et Classe Amie en c++?

uaip

Fonction amie -> jamais entendu parler.
Class -> c'est la POO (Programmation Orientée Objet).
EN gros, en C, le code est organisé en fonctions (c'est un langage fonctionnel). C'est à dire que les données sont stockées dans des variables, et les opérations se font grace à ces fonctions.
Par exemple :
#include <stdio.h>
int carre(int x) {
    return(x*x);
}
int main() {
    int nombre=5;
    int carre_nombre=carre(nombre);
    printf("Le carre de %d est %d",nombre,carre_nombre);
    return0;
}

Le C++ a intégré la POO, c'est à dire que chaque "élément" du programme est considéré comme un objet (ou une instance de telle ou telle classe).
Petit exemple de la vie courante : imagine la classe "voiture".
Cette classe contient des propriétés (nommées attributs), comme par exemple le nombre de portes, la vitesse max, le nombre de places, la taille du réservoir, etc...
On peut également interagir sur cette classe ("voiture"), comme par exemple avancer, reculer, tourner à droite ou à gauche, etc... On appelle ça les méthodes.
Et bien avec cette classe "voiture", tu peux par exemple déclarer un modèle "Renault_Megane". Ainsi tu lui attribues 5 portes, une vitesse max assez élevée, etc... Ce modèle "Renault_Megane" est appelé instance de la classe "voiture".

En C++ c'est pareil, ton programme sera organisé en classes, et n'auras qu'à interagir sur ses instances.
Quel intêret ? Et ben... Regarde les jeux vidéos par exemple. Tu déclares par exemple une classe "Adversaires", en lui attribuant une position, un level, un niveau de vie, etc... et si dans ton jeu tu as 3 adversaires, alors tu déclares 3 instances de cette même classe.
Pour le code, c'est assez "complexe" à comprendre, surtout si tu débutes, mais en gros voilà un exemple :
Je déclarer une classe "Adversaires" contenant une position (x et y, on va dire que c'est en 2D ^^), un level, un niveau de vie, et des méthodes (pour agir se l'instance) comme se déplacer ou tirer.
class Adversaires {
    public:
    Adversaires(intx,inty); //Constructeur de la classe
    void tirer();//Tirer
    void se_deplacer(int x,int y);//Se déplacer
    private:
    int x;//Coordonnée sur l'axe des abscisses
    int y;//Coordonnée sur l'axe des ordonnées
    int level;//Level
    int vie;//Niveau de vie
};
Si tu ne comprends pas le code, disons que c'est normal, j'espère cependant avoir pu t'aider (repense à l'exemple des voitures dans la vie courante ou des adversaires dans un jeu vidéo).

Cordialement, uaip.
mardi 9 décembre 2008 à 20:23:21 | Re : Fonction et Classe Amie en c++?

SAKingdom

Membre Club
Mettre une classe ou une fonction amie permet à cette même fonction ou classe de pouvoir accéder au membre private (methodes, attrbuts, etc) de la classe "hôte".

Exemple avec les fonctions amies:

class Toto {
    int privee;

public:
    void afficher () { cout << privee << endl; };

    friend void modifier(Toto &, int);
};

void modifier (Toto &c, int i) {
    c.privee = i;
}

int main ()
{
    Toto ttt;

    modifier(ttt, 8);

    ttt.afficher();

    return 0;
}

modifier peut accéder à l'attribut privee qui est private. Sans le friend, il ne pourrait pas.

C++ (@++)

mardi 9 décembre 2008 à 20:26:59 | Re : Fonction et Classe Amie en c++?

SAKingdom

Membre Club
Oups j'ai mis un ; de trop après le corps de la méthode afficher:
void afficher () { cout << privee << endl; }; <<<----

Pas bien grave mais bon...

C++ (@++)



Cette discussion est classée dans : fonction, classe, amie


Répondre à ce message

Sujets en rapport avec ce message

Visual c++ [ par Maxus ] Salut,j'ai un probleme sous visual c++ lorque j'execute une fonction d'une classe à partir d'une autre...Explication : dans une fenetre, j'ai une list CListBox [ par wanny ] Bonjour.Dans une classe d'une fonction, je déclare une autre classe (avec une boite de dialogue à afficher) :Dans la boite de dialogue, il y a une CLi utiliser une fonction d'une lib C dans une classe c++ [ par snook ] Bonjour,j'aimerais savoir comment doit on proceder pourappeler une fonction d'une librairie ecrite en C dansmon programme C++?exemple: ma lib possede Utilisation d'une fonction callback [ par laurentl2000 ] Bonjour, Voici une fonction callback destinée à envoyer les titres des fenêtres IE ouvertes dans une listbox... BOOL CALLBACK EnumWindowsProc(HWND hwn Probleme avec les threads en C++ sour linux [ par benjamvs ] Bonjour,j'ai le probleme suivant a regler en C++je travaille sur les threads sous linux, avec la librairie "pthread"Lorsque je crée un thread, celui c API Win 32 et classe SysListView32 dans fonction CreateWindowEx [ par djeauh ] Bonjour à tous je suis nouveau sur le site et j'ai une petite question. Dans un de mes anciens programme en WIN32 j'ai besoins de créer un controle li Appel de fonction [ par amauro ] Bonjour à tous!Bonjour à tous!J'aimerais appeller une fonction que j'ai crée moi-même dans la classe View.cpp de mon application MDI depuis la classe Classe abstraite et fonctions [ par matge ] BonjourJe possede une classe abstraite dans une librairie .h qui se nomme RTPTRANSMITTERCelle ci possede une fonction INIT(bool Threadsafe)Comment d ecrire une fonction en c++ [ par Armandopoulos ] Salut,Comment puis ecrire une fonction en C++, qui doit memoriser un objet d une classe dependamment le l utilisateur, soit dans un fichier xml ou dan [urgent] methode en parametre d'une fonction [ par leprov ] salut a tous.bon voila mon probleme. j'ai une classe et je voudrais passer une de ses fonctions membre en parametre de fonction pour effectuer différe


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales