IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Ambiguité avec la classe base


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Par défaut Ambiguité avec la classe base
    salut, j'ai un nouveau problème ennuyant, après succéder a créer la classe Obstacle, j'avais un question : au lieu d'écrire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    RectangleObstacle* obstacle[2]{
        new RectangleObstacle(Vector2f(50, 50), Vector2f(50, 50)),
        new RectangleObstacle(Vector2f(50, 50), Vector2f(150, 150))};
     
    CircleObstacle* obstacle2[2]{
        new CircleObstacle(Vector2f(50, 50), Vector2f(50, 50)),
        new CircleObstacle(Vector2f(50, 50), Vector2f(150, 150))};
    pour quoi je n'écrivais pas quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Obstacle* obstacle[4]{
        new RectangleObstacle(Vector2f(50, 50), Vector2f(50, 50)),
        new RectangleObstacle(Vector2f(50, 50), Vector2f(150, 150)), 
        new CircleObstacle(Vector2f(50, 50), Vector2f(50, 50)),
        new CircleObstacle(Vector2f(50, 50), Vector2f(150, 150))};
    Mais, je trouve l'erreur suivante :
    error C2594: 'argument'*: conversions ambiguës de 'obstacle::RectangleObstacle' en 'const sf::Drawable &'
    mais cette erreur reste même après faire les héritages virtuelles.

    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #pragma once
    #include <SFML\Graphics.hpp>
    #include "Object.h"
     
    namespace obstacle
    {
    	class Obstacle abstract :  public virtual Object, public virtual sf::Drawable
    	{
    	public:
    		virtual ~Obstacle(void) = 0 {}
    		void draw(sf::RenderTarget &target, sf::RenderStates states) const {}
    	private:
    		friend class CollisionManager;
    	};
     
    	class ConvexObstacle:
    		public virtual Obstacle
    	{
    	public:
    		ConvexObstacle();
    		ConvexObstacle(ConvexObstacle &source);
    		sf::IntRect GetBoundingBox() const;
    		~ConvexObstacle(){};
    //	   sf::Transformable setPosition(sf::Vector2f &position);
    //	   sf::Transformable setPosition(float x, float y);
    //	   sf::Transformable move(sf::Vector2f &position);
    //	   sf::Transformable move(float x, float y);
    	private:
    		sf::ConvexShape personnalisé;
    		friend class CollisionManager;
    	};
     
    	class CircleObstacle :
    		public virtual Obstacle, public virtual sf::CircleShape
    	{
    	public:
    		CircleObstacle(int radius, sf::Vector2f position, sf::Color fill= sf::Color::White, int pointcount = 30);
    		CircleObstacle(CircleObstacle &source);
    		sf::IntRect GetBoundingBox() const;
    		~CircleObstacle(){};
    	private:
    		sf::CircleShape circle;
    		friend class CollisionManager;
    	};
     
    	class RectangleObstacle :
    		public virtual Obstacle, public virtual sf::RectangleShape
    	{
    	public:
            RectangleObstacle(sf::Vector2f size, sf::Vector2f position, sf::Color fill = sf::Color::White);
            RectangleObstacle(RectangleObstacle &source);
    		~RectangleObstacle();
    		sf::IntRect GetBoundingBox() const;
    		using Obstacle::draw;
    	private:
    		friend class CollisionManager;
    	};
     
    };
    aide s'il vous plait...
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2008, 11h11
  2. Réponses: 0
    Dernier message: 04/09/2008, 19h43
  3. Réponses: 7
    Dernier message: 05/10/2004, 13h44
  4. [C#][WebServices] Appel methode avec une classe en paramètre
    Par bran_noz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/09/2004, 16h41
  5. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo