CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

printf("blabla");

angivare
angivare
Niveau 10
27 juin 2012 à 21:21:22

Hey, si j'ai un attribut a d'une classe b et un attribut b d'une classe a, ça marche pas? :pf:

caelacanthe
caelacanthe
Niveau 10
27 juin 2012 à 21:23:20

je ferais quelques tests... merci Paulop. :oui:

j'essayais de détourner le code source de paq8px pour l'inclure dans mon jeu, et c'est dingue les horreurs qu'on peut croiser quelquefois. :peur:

angivare
angivare
Niveau 10
27 juin 2012 à 21:25:28

"et c'est dingue les horreurs qu'on peut croiser quelquefois. :peur: "

En parlant de moi? :-(

Silvermo
Silvermo
Niveau 26
27 juin 2012 à 21:26:57

Le musée des horreurs c'est là http://hatepaste.com/newest/

Silvermo
Silvermo
Niveau 26
27 juin 2012 à 21:27:45

Ceci est encore plus fun pour commencer à lire hatepaste.com : http://hatepaste.com/hated/

angivare
angivare
Niveau 10
27 juin 2012 à 21:28:53

Mais sinon vous répondez pas à ma question? :(

Silvermo
Silvermo
Niveau 26
27 juin 2012 à 21:29:42

pas moi, mais ptet d'autres...

Paulop
Paulop
Niveau 12
27 juin 2012 à 21:31:17

C'est possible en utilisant des pointeurs.

angivare
angivare
Niveau 10
27 juin 2012 à 21:32:38

Euh pour vous expliquer plus en détail, j'ai une classe client qui contient un QTcpSocket et un pseudo, (puis j'ajouterai d'autres choses),et j'aimerais avoir un pointeur vers client en ayant seulement le QTcpSocket, alors j'ai fait une classe TCPSOCKET héritant de QTcpSocket qui surcharge l'opérateur en prenant pour argument un client et ça la stockera dans une attribut pour pouvoir la ressortir plus tard, mais ça fait une erreur de compilation comme quoi "client" n'est pas une classe

angivare
angivare
Niveau 10
27 juin 2012 à 21:34:18

Paulop: oui, l'argument du constructeur est un pointeur, l'attribut aussi.. je comprends pas

Paulop
Paulop
Niveau 12
27 juin 2012 à 21:43:02

class B;

class A
{
public:
A(B& b) :b(b){}
B& b;
};

class B
{
public:
B(){}
A* a;
};

Un exemple parmi tant d'autre.

Paulop
Paulop
Niveau 12
27 juin 2012 à 21:46:21

Silvermo, j'ai pas compris le problème du plus détesté : http://hatepaste.com/paste/f5da3584

C'est parfois plus clair de l'écrire comme ça.

vive_cod4
vive_cod4
Niveau 9
27 juin 2012 à 21:52:22
angivare
angivare
Niveau 10
27 juin 2012 à 21:53:03

Ouais en gros c'est ce que je fais mais ça me dit que je peux pas déclarer "A" sans type (en gros il croit que A est le nom de l'attribut et qu'il faut la classe avant..)
Ca doit être un problème avec les includes en fait :(

//TCPSOCKET.h

  1. ifndef TCPSOCKET_H
  2. define TCPSOCKET_H
  1. include <client.h>
  2. include <QtGui>
  3. include <QtNetwork>

class TCPSOCKET : public QTcpSocket
{
public:
TCPSOCKET();
TCPSOCKET(client *mere); //ça ajoute que "mother=mere;" par rapport au 1e constructeur
void getMother();
private:
client *mother;
};

  1. endif // TCPSOCKET_H

//client.h

  1. ifndef CLIENT_H
  2. define CLIENT_H
  1. include <TCPSOCKET.h>
  2. include <QtNetwork>
  3. include <QtGui>

class client : public QObject
{
Q_OBJECT
signals:
...

public slots:
...

public:
...

private:
TCPSOCKET *socket;
QString *pseudo;

};

  1. endif // CLIENT_H
caelacanthe
caelacanthe
Niveau 10
27 juin 2012 à 21:58:57

if (someBoolean == true) {
doSomething();
}

:d) oups, c'est moi. :hap:

mais au moins, en LUA, ça fait une erreur quand someBoolean a été assignée à un nombre par erreur, au lieu de faire... ben, ce que le programme voudra faire à ce moment-là. :hap:

Paulop
Paulop
Niveau 12
27 juin 2012 à 22:01:52

Petite règle, il vaut mieux faire une forward declaration quand :

Tu utilises un pointeur ou une reference du type
Quand le type est retourné ou le paramètre d'une déclaration de fonction
Quand le type est associé au mot clef static.

Voir ce message sur stackoverflow : http://stackoverflow.com/questions/389957/forward-declaration-of-a-base-class/390124#390124

Dans ton cas tu fais une inclusion croisée, ce n'est pas bon, utilise des forward declaration dans le h et les includes dans les cpp, et dans le bon ordre, c'est à dire dans client.cpp tu inclus client.h en premier puis l'autre en second et vice versa dans l'autre cpp.

angivare
angivare
Niveau 10
27 juin 2012 à 22:20:05

Ah bah merci beaucoup, ça marche sauf que maintenant je sais pas comment ça marche :hap:

En gros quand je mets "class TCPSOCKET;" au début de client.h, ça fait quoi?

Kichon
Kichon
Niveau 6
28 juin 2012 à 00:27:17

:salut:

Suivant les cours pour du C, des fois je vois "int main ()" et d'autres juste "main ()". Les 2 reviennent au même, ou du moins le résultat final semble être le même.

Mais j'aimerai savoir justement si il y a bien quelque chose qui change ?

PocoIo
PocoIo
Niveau 10
28 juin 2012 à 01:23:36

C'est parce qu'en C, int est le type par défaut, c'est à dire que si tu ne précise pas le type d'une variable, elle sera considérée comme un int, on peut donc choisir de ne pas écrire int. C'est valable aussi pour le type de retour des fonctions, comme c'est le cas ici.

En C++ en revanche il n'y a plus de type par défaut (l'un des objectifs du C++ est de minimiser les sources d'erreurs présentes en C, tout en restant compatible avec ce langage) donc il faut toujours écrire int.

PocoIo
PocoIo
Niveau 10
28 juin 2012 à 01:24:22

Ah et donc pour répondre concrètement à la question, non il n'y a aucune différence.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment