C++ kérdések

Kezdőlap Fórumok Programozás C++ kérdések

10 bejegyzés megtekintése - 81-90 / 120
  • Szerző
    Bejegyzés
  • #2023748
    aty
    Felhasználó
      kl223 wrote:
      azt írja, hogy szabálytalan, és szerinte inkább ezt akartam írni:

      Code:
      akarmi( akarmi &_src );

      ez utóbbi viszont nem hajtódik végre mint copy konstruktor vagy mifene… nemtom… volt ott mindig pár error. Nyilván, ez ugye az cím szerinti átadás, nem ugyanaz.

      Mindenképpen így kell írni a másolókonstruktort, ha nem referenciaként kapja, akkor az végtelen ciklust okoz, ugyanis paraméterben konkrét objektum van, ezért neki le kell másolnia, de éppen õ a másoló konstruktor, ezért mégegyszer meghívja önmagát.
      De milyen hiba volt a referenciás megvalósításnál?

      #2023749
      pointux
      Felhasználó

        „Mindenképpen így kell írni a másolókonstruktort, ha nem referenciaként kapja, akkor az végtelen ciklust okoz, ugyanis paraméterben konkrét objektum van, ezért neki le kell másolnia, de éppen õ a másoló konstruktor, ezért mégegyszer meghívja önmagát.”
        Ez persze nem igaz… meg nem is lenne értelme nem obj címmel létrehozni.
        Hogyan is másol?
        van egy alap konstruktorunk:

        Code:
        akarmi () {
        cout << "alap"; this->valtozo = 1;
        }

        meg egy masolo:

        Code:
        akarmi ( akarmi &c ){
        cout << "masolo" this->valtozo = c.valtozo;
        }

        akarmi alap; („alap”, alap.valtozo=1)
        akarmi copy = alap („copy”, copy.valtozo = alap.valtozo)

        Ha mûködne nem címmal:
        akarmi copy = alap (mivel nem cím itt deklarálódik: „alap”, alap.valtozó, majd „copy”, copy.valtozo = alap.valtozo )

        Persze nem mûködik, mert egy még nem létezõ objektumot akarunk teljes terjedelmével egy másolni… ami ugye nem megy. Ha pedig a fordító létre akarná hozni, akkor ahhoz elõször az osztályt kéne legenerálnia, ahhoz meg… ördögi kör:) (A cím viszont egy konkrét, mondjuk 32 bites méretû szám, tehát kivitelezhetõ.)

        Tehát nem érzéle ez ez semmit… egyszerû fordítási hiba. 🙂
        Amúgy se futhatna végtelen ciklusba, hiszen ahhoz az kéne, hogy mindig a copy konst. fusson le, ahhoz meg az kell, hogy minden egyes objektum egy másik paramétereként jelenjen meg (kiv. az elsõt, mert annak az alapnak). Ez nem fog teljesülni, mert az utolsó (itt jelen esetben a második, amit copy-nak neveztem, nem valamely másik függvény paramétereként szerepel… úgy, mint ahogy az alap-nek nevezett… ill annak a címe.)

        #2023750
        pointux
        Felhasználó

          Persze ott valamikor egyszer elsiklottam a hibás (nem cím) felett…. (Ami fordítási hibát okozna.).
          Az meg más kérdés, ha az az átadott obj. egy elõre deffiniált méretû. Akkor szõröstûl böröstül – hiba nélkül – átmásolódik… nyílván lassabban, mint egy cím.

          #2023751
          str2etboy
          Felhasználó
            #2023752
            str2etboy
            Felhasználó

              Hali!!

              A sourcot beállítani:

              Code:
              textBrowser1->setSource(QString(„/teljes/elérési/útvonal/index.html”));

              Köv kérdésem: Qt designerrel (cpp-vel) hogyan tudok shell scriptet futtatni? Azaz egy külsõ programot?

              #2023753
              goraki
              Felhasználó

                Kell az stdio.h, az unistd.h és az stdlib.h a system()-hez. Használata:

                Code:
                system(„parancs”)

                Azt hiszem ez addig blokkolja a folyamatot, amig be nem fejezõdik a parancs, erre egy másik lehetõség, hogy forkolod az aktuális folyamatot és az újat felülírod.

                Code:
                char *parameterek[n];
                parameterek[0]=”paramcs”;
                parameterek[1]=”paraméter1″;
                parameterek[n-1]=NULL;
                if(fork()==0){
                  execv(parameterek[0], parameterek);
                }

                Remélem jól írtam.

                #2023754
                JaPPinGo
                Felhasználó

                  Hali! Parancssorban lehet több modulból álló c++ programot lefordítani? Vagy csak a KDevelop-ban projectként?

                  #2023755
                  kisbetu
                  Felhasználó

                    Ha tudsz programozni, akkor lehet.
                    Mondjuk meg kell tanulni makefile-t írni.

                    #2023756
                    JaPPinGo
                    Felhasználó

                      Most tanulom, azért kérdezem. De köszi, utánnanézek valahol.

                      #2023757
                      kisbetu
                      Felhasználó

                        Nagyvonalakban, hogy legyen merre indulni: a gcc lefordítja, az ld pedig összefűzi a modulokat.

                      10 bejegyzés megtekintése - 81-90 / 120
                      • Be kell jelentkezni a hozzászóláshoz.