Erreur class et methode
Xyliaris
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
Bonjour, j'ai un petit soucis dans mon programme utilisant un alliage c/c++. L'erreur est la suivante :
Voici mes trois fichiers :
main.cpp
class.cpp
header.hpp
Je ne trouve pas de réponse à cette question et je ne vois pas du tout pourquoi cette erreur ^^", en attendant fortement de l'aide.
Cordialement, Xyxy
X:\XXX\XXX\XXX\XXX\XXX\XXX\main.cpp|9|error: expected unqualified-id before '.' token|
Voici mes trois fichiers :
main.cpp
#include <iostream>
#include "header.hpp"
using namespace std;
int main()
{
cout << "Hello world!" << endl;
cmd.color(0, 5, false);
cout << "Hello world!" << endl;
return 0;
}
class.cpp
#include <windows.h>
#include <iostream>
#include "header.hpp"
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void cmd::color(int background, int font, bool withclear)
{
printf("color %d%d", background, font);
if( withclear == true)
{
printf("cls");
}
}
header.hpp
#ifndef HEADER_HPP_INCLUDED
#define HEADER_HPP_INCLUDED
class cmd
{
public:
void color(int background, int font, bool withclear);
};
#endif
Je ne trouve pas de réponse à cette question et je ne vois pas du tout pourquoi cette erreur ^^", en attendant fortement de l'aide.
Cordialement, Xyxy
2 réponses
-
-
'lut, pour utiliser
cmd.color
il faut quecmd
soit une instance de ta classecmd
; aussi en C++ la convention est de nommer les classes avec une majuscule en début de nom (classe a renommer donc), cela donnerait donc:int main() { cout << "Hello world!" << endl; Cmd cmd; cmd.color(0, 5, false); cout << "Hello world!" << endl; return 0; }Ou alternativement, comme la fonction color ne s'exécute pas en fonction de variables appartenant àCmd
, tu peux marquervoid color
commestatic
:static void color(int background, int font, bool withclear);
Et t'en servir de manière statique, avec l'opérateur::
:int main() { cout << "Hello world!" << endl; Cmd::color(0, 5, false); cout << "Hello world!" << endl; return 0; }