Erreur class et methode

Fermé
Xyliaris - 30 mars 2015 à 23:50
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 1 avril 2015 à 18:19
Bonjour, j'ai un petit soucis dans mon programme utilisant un alliage c/c++. L'erreur est la suivante :

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

up
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
1 avril 2015 à 18:19
'lut, pour utiliser
cmd.color
il faut que
cmd
soit une instance de ta classe
cmd
; 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 marquer
void color
comme
static
:
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;
}
0