C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Les classes et les méthodes

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Penguin_X
Guest





PostPosted: Wed Apr 13, 2005 1:19 am    Post subject: Les classes et les méthodes Reply with quote



Salut. Si j'écrit un programme qui ecrit une string dans un fichier et
je voudrais faire ça avec des classes. Est-ce que je peut faire une
méthode qui écrit ma string(une variable privé que jaurais pris le soin
de définir avec un objet). Merci d'avance :)

Voici un exemple:

class monfichier
{
private:
char szMonNomDeFichier[50];
char szMonBuffer[1024];

public:
int setName(char szFileName[50])
{
this->szszMonNomDeFichier;
}

int getData(char szBuffer[1024])
{
this->szMonBuffer;
}

void ecritFichier()
{
// ici j'écrit dans le fichier avec szMonNomDeFichier et avec
// szMonNomDeFichier et j'écrit le buffer dans le fichier
}

};

int main()
{
monfichier mySelf; // je crée un objet

// apres j'utilise ma classe pour travailler dans mon
// fichier avec les méthodes contenu dans celle-ci
}
--
#include <iostream>
#include <string>

int main(){
string myFavoriteOS = "Unix";
cout << "My favorite OS is "
<< myFavoriteOS << end;
return 0;
}
Back to top
Stephane Wirtel
Guest





PostPosted: Wed Apr 13, 2005 7:16 am    Post subject: Re: Les classes et les méthodes Reply with quote



Penguin_X a écrit :
Quote:
Salut. Si j'écrit un programme qui ecrit une string dans un fichier et
je voudrais faire ça avec des classes. Est-ce que je peut faire une
méthode qui écrit ma string(une variable privé que jaurais pris le soin
de définir avec un objet). Merci d'avance Smile
oui.

#include <iostream>
#include <string>
#include <fstream>
#include <memory>
#include <exception>

class Person {
public :
Person (const std::string& pFirstname, const std::string& pLastname) : mFirstname (pFirstname), mLastname (pLastname) {
std::cout << "Person::Person" << std::endl;
}
~Person () {
std::cout << "Person::~Person" << std::endl;
}
void SetFirstname (const std::string& pFirstname) {
std::cout << "Person::SetFirstname" << std::endl;
mFirstname = pFirstname;
}
void SetLastname (const std::string& pLastname) {
std::cout << "Person::SetLastname" << std::endl;
mLastname = pLastname;
}
const std::string& GetFirstname (void) const {
std::cout << "Person::GetFirstname" << std::endl;
return mFirstname;
}
const std::string& GetLastname (void) const {
std::cout << "Person::GetLastname" << std::endl;
return mLastname;
}
void SaveToFile (const std::string& pFilename) throw (std::exception) {
std::cout << "Person::SaveToFile" << std::endl;
try {
std::fstream fileOut(pFilename, std::ios::out);
fileOut << "Firstname : " << GetFirstname () << std::endl
<< "Lastname : " << GetLastname () << std::endl;
fileOut.close ();
} catch (const std::exception& pException) {
// traitement si il y en a un.
throw pException;
}
}
};

int main (int argc, char **argv) {
try {
std::auto_ptr person->SaveToFile ("Person.txt");
} catch (const std::exception& pException) {
std::cout << "Exception levée : " << pException.what () << std::endl;
}
return 0;
}

Je n'ai pas testé ni compilé, mais ne devrait pas poser de problèmes.

Quote:

Voici un exemple:

class monfichier
{
private:
char szMonNomDeFichier[50];
char szMonBuffer[1024];
Utiliser des std::string c'est un peu mieux.

public:
int setName(char szFileName[50])
{
this->szszMonNomDeFichier;
}

int getData(char szBuffer[1024])
{
this->szMonBuffer;
}

void ecritFichier()
{
// ici j'écrit dans le fichier avec szMonNomDeFichier et avec
// szMonNomDeFichier et j'écrit le buffer dans le fichier
}

};

int main()
int main (int argc, char **argv)
{
monfichier mySelf; // je crée un objet

// apres j'utilise ma classe pour travailler dans mon
// fichier avec les méthodes contenu dans celle-ci
}

Y a des erreurs dans ta signature.

Cela fonctionnerait si par exemple tu rajouterais "using namespace std" ou que tu préfixes "cout", "endl" avec "std::" ou même que tu fasses
#include <iostream.h> etc... ;-)

Bonne journée.

Back to top
Penguin_X
Guest





PostPosted: Wed Apr 13, 2005 10:54 am    Post subject: Re: Les classes et les méthodes Reply with quote



Stephane Wirtel wrote:
Quote:
Penguin_X a écrit :

Salut. Si j'écrit un programme qui ecrit une string dans un fichier et
je voudrais faire ça avec des classes. Est-ce que je peut faire une
méthode qui écrit ma string(une variable privé que jaurais pris le
soin de définir avec un objet). Merci d'avance :)

oui.
#include <iostream
#include #include #include #include
class Person {
public :
Person (const std::string& pFirstname, const std::string&
pLastname) : mFirstname (pFirstname), mLastname (pLastname) {
std::cout << "Person::Person" << std::endl;
}
~Person () {
std::cout << "Person::~Person" << std::endl;
}
void SetFirstname (const std::string& pFirstname) {
std::cout << "Person::SetFirstname" << std::endl;
mFirstname = pFirstname;
}
void SetLastname (const std::string& pLastname) {
std::cout << "Person::SetLastname" << std::endl;
mLastname = pLastname;
}
const std::string& GetFirstname (void) const {
std::cout << "Person::GetFirstname" << std::endl;
return mFirstname;
}
const std::string& GetLastname (void) const {
std::cout << "Person::GetLastname" << std::endl;
return mLastname;
}
void SaveToFile (const std::string& pFilename) throw
(std::exception) {
std::cout << "Person::SaveToFile" << std::endl;
try {
std::fstream fileOut(pFilename, std::ios::out);
fileOut << "Firstname : " << GetFirstname () << std::endl
"Lastname : " << GetLastname () << std::endl;
fileOut.close ();
} catch (const std::exception& pException) {
// traitement si il y en a un.
throw pException;
}
}
};

int main (int argc, char **argv) {
try {
std::auto_ptr person->SaveToFile ("Person.txt");
} catch (const std::exception& pException) {
std::cout << "Exception levée : " << pException.what ()
std::endl;
}
return 0;
}

Je n'ai pas testé ni compilé, mais ne devrait pas poser de problèmes.


Voici un exemple:

class monfichier
{
private:
char szMonNomDeFichier[50];
char szMonBuffer[1024];

Utiliser des std::string c'est un peu mieux.


public:
int setName(char szFileName[50])
{
this->szszMonNomDeFichier;
}

int getData(char szBuffer[1024])
{
this->szMonBuffer;
}

void ecritFichier()
{
// ici j'écrit dans le fichier avec szMonNomDeFichier et avec
// szMonNomDeFichier et j'écrit le buffer dans le fichier
}

};

int main()

int main (int argc, char **argv)

{
monfichier mySelf; // je crée un objet

// apres j'utilise ma classe pour travailler dans mon
// fichier avec les méthodes contenu dans celle-ci
}


Y a des erreurs dans ta signature.

Cela fonctionnerait si par exemple tu rajouterais "using namespace std"
ou que tu préfixes "cout", "endl" avec "std::" ou même que tu fasses
#include <iostream.h> etc... ;-)

Bonne journée.
Merci ! Cet exemple vient de répondre à mes problèmes Smile


--
#include <iostream>
#include <string>

int main(){
string myFavoriteOS = "Unix";
cout << "My favorite OS is "
<< myFavoriteOS << end;
return 0;
}

Back to top
Ahmed MOHAMED ALI
Guest





PostPosted: Wed Apr 13, 2005 11:01 am    Post subject: Re: Les classes et les méthodes Reply with quote

Stephane Wirtel wrote

Quote:
int main (int argc, char **argv) {
try {
std::auto_ptr <Person> person (new Person ("Stephane", "Wirtel"));
person->SaveToFile ("Person.txt");
} catch (const std::exception& pException) {
std::cout << "Exception levée : " << pException.what () << std::endl;
}
return 0;
}

L'allocation avec new n'est pas nécessaire ici.
On pourrait écrire plus simplement :

int main (int argc, char **argv) {
...
Person person ("Stephane", "Wirtel");
person.SaveToFile ("Person.txt");
...
}

C'est plus rapide et ne nécessite pas de gestion mémoire.

Ahmed

"Stephane Wirtel"
Quote:
Penguin_X a écrit :
Salut. Si j'écrit un programme qui ecrit une string dans un fichier et
je voudrais faire ça avec des classes. Est-ce que je peut faire une
méthode qui écrit ma string(une variable privé que jaurais pris le soin
de définir avec un objet). Merci d'avance Smile
oui.
#include <iostream
#include #include #include #include
class Person {
public :
Person (const std::string& pFirstname, const std::string& pLastname) :
mFirstname (pFirstname), mLastname (pLastname) {
std::cout << "Person::Person" << std::endl;
}
~Person () {
std::cout << "Person::~Person" << std::endl;
}
void SetFirstname (const std::string& pFirstname) {
std::cout << "Person::SetFirstname" << std::endl;
mFirstname = pFirstname;
}
void SetLastname (const std::string& pLastname) {
std::cout << "Person::SetLastname" << std::endl;
mLastname = pLastname;
}
const std::string& GetFirstname (void) const {
std::cout << "Person::GetFirstname" << std::endl;
return mFirstname;
}
const std::string& GetLastname (void) const {
std::cout << "Person::GetLastname" << std::endl;
return mLastname;
}
void SaveToFile (const std::string& pFilename) throw (std::exception) {
std::cout << "Person::SaveToFile" << std::endl;
try {
std::fstream fileOut(pFilename, std::ios::out);
fileOut << "Firstname : " << GetFirstname () << std::endl
"Lastname : " << GetLastname () << std::endl;
fileOut.close ();
} catch (const std::exception& pException) {
// traitement si il y en a un.
throw pException;
}
}
};

int main (int argc, char **argv) {
try {
std::auto_ptr person->SaveToFile ("Person.txt");
} catch (const std::exception& pException) {
std::cout << "Exception levée : " << pException.what () << std::endl;
}
return 0;
}

Je n'ai pas testé ni compilé, mais ne devrait pas poser de problèmes.


Voici un exemple:

class monfichier
{
private:
char szMonNomDeFichier[50];
char szMonBuffer[1024];
Utiliser des std::string c'est un peu mieux.

public:
int setName(char szFileName[50])
{
this->szszMonNomDeFichier;
}

int getData(char szBuffer[1024])
{
this->szMonBuffer;
}

void ecritFichier()
{
// ici j'écrit dans le fichier avec szMonNomDeFichier et avec
// szMonNomDeFichier et j'écrit le buffer dans le fichier
}

};

int main()
int main (int argc, char **argv)
{
monfichier mySelf; // je crée un objet

// apres j'utilise ma classe pour travailler dans mon
// fichier avec les méthodes contenu dans celle-ci
}

Y a des erreurs dans ta signature.

Cela fonctionnerait si par exemple tu rajouterais "using namespace std" ou
que tu préfixes "cout", "endl" avec "std::" ou même que tu fasses
#include <iostream.h> etc... ;-)

Bonne journée.



Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.