Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. undefined reference to
Forum Updated to NodeBB v4.3 + New Features

undefined reference to

Scheduled Pinned Locked Moved General and Desktop
14 Posts 6 Posters 7.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    kamalakshantv
    wrote on last edited by
    #5

    [quote author="BlackDante" date="1293791754"]
    [quote author="QtK" date="1293783653"]
    [quote author="sathism" date="1293777356"]@
    namespace The {
    NetworkAccess* http();
    }

    Video::Video() : m_duration(0),
    m_viewCount(-1),
    definitionCode(0),
    elIndex(0),
    loadingStreamUrl(false)
    { }
    @

    [/quote]

    Also what does this lines do. Are they inside any function.
    [/quote]

    I think that this is a construct function with list of initialization(i don't sure how it's named in english) from class Video who is in video.h file [/quote]

    Oh no it seems I am gone blind :) I didn't notice this Video::Video() properly.

    Thank you.

    1 Reply Last reply
    0
    • V Offline
      V Offline
      vsorokin
      wrote on last edited by
      #6

      QtK, BlackDante are right, It's implementation empty constructor with list of initialization values.

      --
      Vasiliy

      1 Reply Last reply
      0
      • K Offline
        K Offline
        kamalakshantv
        wrote on last edited by
        #7

        [quote author="Vass" date="1293792450"]QtK, BlackDante are right, It's implementation empty constructor with list of initialization values.[/quote]

        Yes, As mentioned above I had not noticed it properly. Don't know how I missed it.

        1 Reply Last reply
        0
        • B Offline
          B Offline
          BlackDante
          wrote on last edited by
          #8

          This is no problem, sometimes everyone can miss somethink. :) it's in human nature :)

          sorry for my broken english :)

          1 Reply Last reply
          0
          • G Offline
            G Offline
            giesbert
            wrote on last edited by
            #9

            [quote author="Vass" date="1293779836"]@namespace The {
            NetworkAccess* http();
            }@

            You declare this function, but nowhere implemented it.[/quote]

            This should be the problem. Something like this should solve it:

            @
            #include "video.h"
            #include "networkaccess.h"
            #include <QtNetwork>
            #include "videodefinition.h"

            namespace The {
            NetworkAccess* http()
            {
            return 0;
            }
            }

            Video::Video() :
            m_duration(0),
            m_viewCount(-1),
            definitionCode(0),
            elIndex(0),
            loadingStreamUrl(false)
            { }

            void Video::preloadThumbnail()
            {
            if (m_thumbnailUrls.isEmpty()) return;
            QObject *reply = The::http()->get(m_thumbnailUrls.first());
            connect(reply, SIGNAL(data(QByteArray)), SLOT(setThumbnail(QByteArray)));
            }
            @

            Nokia Certified Qt Specialist.
            Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

            1 Reply Last reply
            0
            • ZlatomirZ Offline
              ZlatomirZ Offline
              Zlatomir
              wrote on last edited by
              #10

              Please ignore if you actually want the http to be a function
              But i have a feeling that the OP didn't want a function there, so here is my explanation about this line of code:
              @NetworkAccess* http();@
              The C++ compiler threats all the "things" that might be a function declaration, like there really are function declaration, so the compiler thinks: NetworkAccess pointer is the return type, http is the function name and () the function has no parameters.

              If you want an object on the stack you will write this:
              @NetworkAccess http; //no pointer and no () for default constructor
              @
              If you want/need to use pointers, you need two objects: the pointer and the object itself, that is done usually by using the operator new to allocate memory and call the constructor of the object (or using the address-of operator to take the address of a previously created object), code (for operator new) looks like this:
              @NetworkAccess* http = new NetworkAccess(); //here you can have () for default constructor ;)
              @

              https://forum.qt.io/category/41/romanian

              1 Reply Last reply
              0
              • S Offline
                S Offline
                sathism
                wrote on last edited by
                #11

                Thanks for all your valuable replies.
                @Gerolf
                I will try your fix ..

                1 Reply Last reply
                0
                • V Offline
                  V Offline
                  vsorokin
                  wrote on last edited by
                  #12

                  [quote author="Gerolf" date="1293806305"]
                  This should be the problem. Something like this should solve it:

                  @
                  #include "video.h"
                  #include "networkaccess.h"
                  #include <QtNetwork>
                  #include "videodefinition.h"

                  namespace The {
                  NetworkAccess* http()
                  {
                  return 0;
                  }
                  }

                  Video::Video() :
                  m_duration(0),
                  m_viewCount(-1),
                  definitionCode(0),
                  elIndex(0),
                  loadingStreamUrl(false)
                  { }

                  void Video::preloadThumbnail()
                  {
                  if (m_thumbnailUrls.isEmpty()) return;
                  QObject *reply = The::http()->get(m_thumbnailUrls.first());
                  connect(reply, SIGNAL(data(QByteArray)), SLOT(setThumbnail(QByteArray)));
                  }
                  @[/quote]

                  Gerolf, you code will be crashed on line 25:
                  @ QObject *reply = The::http()->get(m_thumbnailUrls.first());@
                  because The::http() return null pointer.

                  --
                  Vasiliy

                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    giesbert
                    wrote on last edited by
                    #13

                    It was to show, what is missing. I didn't implement the method, that's something you have to do :-)

                    Nokia Certified Qt Specialist.
                    Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

                    1 Reply Last reply
                    0
                    • V Offline
                      V Offline
                      vsorokin
                      wrote on last edited by
                      #14

                      Gerolf I understood :) I just saw sathism will try your fix, and warned about problem.

                      --
                      Vasiliy

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved