[C++] Erreurs de compilation !
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Mon programme ne s'exécute pas et je n'arrive pas à détecter mes erreurs :
Voilà le code :
Merci de vos réponses :)
Mon programme ne s'exécute pas et je n'arrive pas à détecter mes erreurs :
Voilà le code :
#include<iostream>
using namespace std;
class C
{
int *v;
public:
C(int x);
~C();
C(C c);
int getv();
};
C::C(int x)
{
v=new int(x);
cout<<"objet cree..."<<endl;
}
C::~C()
{
delete v;
cout<<"objet detruit..."<<endl;
}
C::C(C c)
{
v=new int(c.v);
cout<<"objet cree par recopie..."<<endl;
}
int C::getv()
{
return *v;
}
void f(C c)
{
cout<<"la valeur de V = "<<c->getv()<<endl;
}
void main()
{
C c1(0), c2(1), c3(2), c4;
C *p;
cout<<c2.getv()<<endl;
f(c3);
p=new C(4);
f(p);
cout<<p->getv();
delete p;
}
Merci de vos réponses :)
A voir également:
- [C++] Erreurs de compilation !
- Breach compilation c'est quoi - Guide
- Erreur de segmentation c - Astuces et Solutions
- Erreur de Segmentation (Core Dumped) ✓ - Forum C
- Erreur de lecture reconnecté en 3s - Forum Box et Streaming vidéo
- Une erreur de communication est détectée dans le module de sécurité ✓ - Forum TNT / Satellite / Réception
6 réponses
Resalut,
Je suis sous Microsoft Visual Studio 2005 (.Net)
Je fais ctrl+F7 pour compiler et ctrl+F5 pour exécuter.
Le champ de mort comme nous l'appelons est le suivant :
1>------ Build started: Project: ex2tp3, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(10) : error C2652: 'C' : illegal copy constructor: first parameter must not be a 'C'
1> c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(5) : see declaration of 'C'
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(25) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
1> There is no context in which this conversion is possible
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(34) : error C2819: type 'C' does not have an overloaded member 'operator ->'
1> c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(5) : see declaration of 'C'
1> did you intend to use '.' instead?
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(34) : error C2232: '->C::getv' : left operand has 'class' type, use '.'
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(38) : error C2512: 'C' : no appropriate default constructor available
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(41) : error C2664: 'f' : cannot convert parameter 1 from 'C' to 'C'
1> Cannot copy construct class 'C' due to ambiguous copy constructors or no available copy constructor
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(43) : error C2664: 'f' : cannot convert parameter 1 from 'C *' to 'C'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
1>Build log was saved at "file://c:\Documents and Settings\khaoula\Mes documents\Visual Studio 2005\Projects\ex2tp3\ex2tp3\Debug\BuildLog.htm"
1>ex2tp3 - 7 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Je suis sous Microsoft Visual Studio 2005 (.Net)
Je fais ctrl+F7 pour compiler et ctrl+F5 pour exécuter.
Le champ de mort comme nous l'appelons est le suivant :
1>------ Build started: Project: ex2tp3, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(10) : error C2652: 'C' : illegal copy constructor: first parameter must not be a 'C'
1> c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(5) : see declaration of 'C'
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(25) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
1> There is no context in which this conversion is possible
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(34) : error C2819: type 'C' does not have an overloaded member 'operator ->'
1> c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(5) : see declaration of 'C'
1> did you intend to use '.' instead?
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(34) : error C2232: '->C::getv' : left operand has 'class' type, use '.'
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(38) : error C2512: 'C' : no appropriate default constructor available
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(41) : error C2664: 'f' : cannot convert parameter 1 from 'C' to 'C'
1> Cannot copy construct class 'C' due to ambiguous copy constructors or no available copy constructor
1>c:\documents and settings\khaoula\mes documents\visual studio 2005\projects\ex2tp3\ex2tp3\main.cpp(43) : error C2664: 'f' : cannot convert parameter 1 from 'C *' to 'C'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
1>Build log was saved at "file://c:\Documents and Settings\khaoula\Mes documents\Visual Studio 2005\Projects\ex2tp3\ex2tp3\Debug\BuildLog.htm"
1>ex2tp3 - 7 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Re-Bonjour
Ton titre parle d'erreur de compilation, pas d'éxécution.
Si ton problème est à la compilation, quel(s) message(s) d'erreur obtiens-tu ?
Ton titre parle d'erreur de compilation, pas d'éxécution.
Si ton problème est à la compilation, quel(s) message(s) d'erreur obtiens-tu ?
mauvaise déclaration de constructeur par recopie + joyeux mélimélo de pointeurs et de variables pointées...
// vcconsole.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
using namespace std;
class C
{
int *v;
public:
C(int x);
~C();
C(const C& c);
int getv();
};
C::C(int x)
{
v=new int(x);
cout<<"objet cree..."<<endl;
}
C::~C()
{
delete v;
cout<<"objet detruit..."<<endl;
}
C::C(const C& c)
{
v=new int( *c.v );
cout<<"objet cree par recopie..."<<endl;
}
int C::getv()
{
return *v;
}
void f(C c)
{
cout<<"la valeur de V = "<<c.getv()<<endl;
}
void main()
{
C c1(0), c2(1), c3(2), c4(3);
C *p;
cout<<c2.getv()<<endl;
f(c3);
p=new C(4);
f(*p);
cout<<p->getv();
delete p;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai horreur du constructeur par recopie !! beurk :(
Merci, mais apparemment mon IDE ne comprend pas le : #include "stdafx.h"
Quand je compile, il me génére cette erreur :
fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory.
C'est la première fois que je vois de tel préprocesseur :)
Merci, mais apparemment mon IDE ne comprend pas le : #include "stdafx.h"
Quand je compile, il me génére cette erreur :
fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory.
C'est la première fois que je vois de tel préprocesseur :)