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 :

changer de place du code du main vers le code source.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 33
    Par défaut changer de place du code du main vers le code source.
    Bonjour, après la lecture d'un article sur une autre site

    j'ai pensé que écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    QNetworkProxy proxy;
    proxy.setType(QNetworkProxy::HttpProxy); //Type de proxy
    proxy.setHostName("proxy.com"); //"Host" du proxy
    proxy.setPort(1080); //Port du proxy
    proxy.setUser("username"); //Facultatif
    proxy.setPassword("password"); //Facultatif
    Qui logiquement est rangé dans le main en raison de sa syntaxe pointographique et non fléchée, ferait mieux d'être écrit dans le .cpp.

    Mes preiers éssais se soldaient par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ConnexionProxy::ConnexionProxy() : QWidget()
    {
        proxy->setType(QNetworkProxy::HttpProxy); // indique qu'il s'agisse d'un proxy web (fait par défaut).
        proxy->setHostName("proxy.com"); // donner l'url du site internet ou l'on envoit un proxy.
        proxy->setPort(1080); //remplacer la valeur par le quatrième tableau
    }
    avec dans le main :

    Ce qui ne peut évidemment pas fonctionner puisque un objet ne peut servir d'attribut.

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Il te manque 2 notions. 3 puisque tu es en C++ : pas pointeur pointeur, référence

    De plus tu ne t’aperçois pas que dans ton code déplacé tu ne déclares même pas proxy.
    Comme si le compilateur va chercher un objet local pour compiler un constructeur

    Et ensuite il te manque la notion de classe. Puisque apparemment, proxy devient un attribut et non plus un objet local.

    À moins que tu crées un namespace [anonyme ou pas] pour en faire plus en moins un objet global.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonsoir,
    Citation Envoyé par UnConfiantEtudiant Voir le message
    rangé dans le main en raison de sa syntaxe pointographique et non fléchée, ferait mieux d'être écrit dans le .cpp.
    Euh... quoi ?!?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 33
    Par défaut
    Proxy est ici déclaré en tant que objet dans le main. Ce qui évidemment ne marche pas puisque je l'utilise en tant qu'attribut donc oui je l'ai déclaré mais erronément. Je voulais faire comme dans un tuto d'un autre site.
    Toute la problématique réside dans l'ajout d'une classe et d'un objet supplémentaire.

    bousk : désolé pour le néologisme.

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Si tu montres le code en entier cela serait mieux, tu ne crois pas
    Sinon pourquoi rajouter une classe?

    Sinon dans ton fichier.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class ConnexionProxy: public QWidget {
    // ... All stuff here
     
     
    private: // or either protected or public
     
        QNetworkProxy proxy;
    };
    Sinon dans ton fichier.m (ou inline dans la définition de ta classe), avec la liste d'initialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ConnexionProxy::ConnexionProxy() :
        QWidget(), proxy(QNetworkProxy::HttpProxy, /*QString(*/"proxy.com"/*)*/, 1080) {
     
        // ... Constructor
    }

  6. #6
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 33
    Par défaut
    "Sinon dans ton fichier.m (ou inline dans la définition de ta classe), avec la liste d'initialisation



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    12345 ConnexionProxy::ConnexionProxy() :
        QWidget(), proxy(QNetworkProxy::HttpProxy, /*QString(*/"proxy.com"/*)*/, 1080) {
     
        // ... Constructor
    } "
    Pourquoi ne pas le mettre a l'interieur de la boucle ?

    Je pense que l'erreur se trouve ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QNetworkProxy proxy;
        //proxy.ConnexionProxy ne fonctionne pas;

    Comment appeler la méthode/ deuxième constructeur au cours du même programme ?

  7. #7
    Membre averti
    Homme Profil pro
    Doctorant
    Inscrit en
    Novembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Par défaut
    Bonjour,

    J'ai du mal à comprendre ce que tu veux faire. Pourquoi veux-tu faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ConnexionProxy::ConnexionProxy() : QWidget()
    {
        proxy->setType(QNetworkProxy::HttpProxy); // indique qu'il s'agisse d'un proxy web (fait par défaut).
        proxy->setHostName("proxy.com"); // donner l'url du site internet ou l'on envoit un proxy.
        proxy->setPort(1080); //remplacer la valeur par le quatrième tableau
    }
    Au lieu de cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    QNetworkProxy proxy;
    proxy.setType(QNetworkProxy::HttpProxy); //Type de proxy
    proxy.setHostName("proxy.com"); //"Host" du proxy
    proxy.setPort(1080); //Port du proxy
    proxy.setUser("username"); //Facultatif
    proxy.setPassword("password"); //Facultatif
    Si c'est pour affecter les membres type, hostName et port d'une instance de classe QNetworkProxy réalisée ailleurs dans le code tu peux faire une méthode qui prend une référence de l'instance en question.

    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
     
    #include <QNetworkProxy>
     
    class ProxyConnect
    {
    public:
    	static void setConnection(QNetworkProxy &proxy, ProxyType type = QNetworkProxy::HttpProxy, const QString &hostName = "proxy.com", quint16 port = 1080)
    	{
    		proxy.setType(type); // indique qu'il s'agisse d'un proxy web (fait par défaut).
    		proxy.setHostName(hostName); // donner l'url du site internet ou l'on envoit un proxy.
    		proxy.setPort(port); //remplacer la valeur par le quatrième tableau
    	}
    };
     
    int main(int argc, char *argv[])
    {
    	QNetworkProxy proxy;
    	ProxyConnect::setConnection(proxy);
    	return 0;
    }
    Je n'ai pas Qt d'installé je ne peux pas dire si le code proposé fonctionne.

    Par ailleurs :

    Ce qui ne peut évidemment pas fonctionner puisque un objet ne peut servir d'attribut.
    Qu'entends-tu par là ? Sans plus de détails j'aurais tendance à dire que tu te trompes lourdement.

Discussions similaires

  1. Convertion code Delphi.net vers C#
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 31/03/2006, 21h08
  2. [VBA-W]changer de place un numero sur une page word
    Par benco dans le forum VBA Word
    Réponses: 1
    Dernier message: 26/03/2006, 12h37
  3. Changer de place le curseur
    Par CCin dans le forum C++
    Réponses: 4
    Dernier message: 01/11/2005, 19h10
  4. changer de place d'un texte avec WM_TIMER
    Par nasrij dans le forum MFC
    Réponses: 5
    Dernier message: 06/10/2005, 16h11
  5. [Linux]différence de code de windows vers unix sous eclipse
    Par skywalker3 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 05/01/2005, 14h11

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