Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How do I access private variable of an object ?

How do I access private variable of an object ?

Scheduled Pinned Locked Moved C / C++ / MFC
question
15 Posts 6 Posters 1 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.
  • L Lost User

    I have limited access to the object , but I can retrieve data of interest - in this case dimensions of one of the GUI objects.

    Form_Widget *FW = new Form_Widget(); // object
    QRect dimensions = FW->geometry(); // returns dimensions of specific part of the object
    int start_X = dimensions.x2; //can't do, QRect / dimensions are private

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #6

    Why not study the documentation: QRect Class | Qt Core 5.15.4[^], which explains exactly how to get all the points of the rectangle?

    1 Reply Last reply
    0
    • L Lost User

      I have limited access to the object , but I can retrieve data of interest - in this case dimensions of one of the GUI objects.

      Form_Widget *FW = new Form_Widget(); // object
      QRect dimensions = FW->geometry(); // returns dimensions of specific part of the object
      int start_X = dimensions.x2; //can't do, QRect / dimensions are private

      R Offline
      R Offline
      RedDk
      wrote on last edited by
      #7

      One of the steps I invariably do, when debugging, is comment-out private blocks ... essentially rendering all statements public. Now that I get typing ... and that's just for starters. Without the essential error code (warning?) accompanying a successful compilation/link/running blank form ... there's little more time expendable for me, especially if you're already running debugger and just don't care to get descriptive enough with words and include a code. So, I'll just cut to the chase.

      1 Reply Last reply
      0
      • L Lost User

        I have limited access to the object , but I can retrieve data of interest - in this case dimensions of one of the GUI objects.

        Form_Widget *FW = new Form_Widget(); // object
        QRect dimensions = FW->geometry(); // returns dimensions of specific part of the object
        int start_X = dimensions.x2; //can't do, QRect / dimensions are private

        CPalliniC Offline
        CPalliniC Offline
        CPallini
        wrote on last edited by
        #8

        Hacking it.

        "In testa che avete, Signor di Ceprano?" -- Rigoletto

        In testa che avete, signor di Ceprano?

        L 1 Reply Last reply
        0
        • CPalliniC CPallini

          Hacking it.

          "In testa che avete, Signor di Ceprano?" -- Rigoletto

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #9

          Naughty.

          CPalliniC 1 Reply Last reply
          0
          • L Lost User

            Naughty.

            CPalliniC Offline
            CPalliniC Offline
            CPallini
            wrote on last edited by
            #10

            But true. :-D

            "In testa che avete, Signor di Ceprano?" -- Rigoletto

            In testa che avete, signor di Ceprano?

            L 1 Reply Last reply
            0
            • CPalliniC CPallini

              But true. :-D

              "In testa che avete, Signor di Ceprano?" -- Rigoletto

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #11

              Sorry, I posted this is wrong forum. But to the comedians - do not quit you day job. In the mean time I'll looking at usage of "friend".

              L CPalliniC 2 Replies Last reply
              0
              • L Lost User

                Sorry, I posted this is wrong forum. But to the comedians - do not quit you day job. In the mean time I'll looking at usage of "friend".

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #12

                Member 14968771 wrote:

                In the mean time I'll looking at usage of "friend".

                Don't waste your time, since it will not make any difference. You cannot declare your class to be a friend of some other class in the hope of accessing its private variables. If that was possible then the millions of applications would be open to hacking. Do what I suggested above and make use of the information provided in the documentation: that is what it is there for..

                1 Reply Last reply
                0
                • D David Crow

                  Member 14968771 wrote:

                  I guess height and width are QRect public variables derived from "private" data.

                  No, they are public methods that give you read-only access to private members.

                  "One man's wage rise is another man's price increase." - Harold Wilson

                  "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                  "You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #13

                  So my initial problem is I was accessing the private variable directly and not thru QRect. I am not sure I am saying it right. I'll take a look at QRect class. Thanks

                  1 Reply Last reply
                  0
                  • L Lost User

                    Sorry, I posted this is wrong forum. But to the comedians - do not quit you day job. In the mean time I'll looking at usage of "friend".

                    CPalliniC Offline
                    CPalliniC Offline
                    CPallini
                    wrote on last edited by
                    #14

                    It was serious, actually. If you the designer of the class made a member private then you have two ways to access it: the publicly exposed interface (for instance the get/set methods) or a dirty hack on its bare representation in memory. Typically you cannot use friend because you are not the designer of the class.

                    "In testa che avete, Signor di Ceprano?" -- Rigoletto

                    In testa che avete, signor di Ceprano?

                    1 Reply Last reply
                    0
                    • L Lost User

                      I have limited access to the object , but I can retrieve data of interest - in this case dimensions of one of the GUI objects.

                      Form_Widget *FW = new Form_Widget(); // object
                      QRect dimensions = FW->geometry(); // returns dimensions of specific part of the object
                      int start_X = dimensions.x2; //can't do, QRect / dimensions are private

                      M Offline
                      M Offline
                      Magnus Forslund
                      wrote on last edited by
                      #15

                      Private members are only accessible via public functions. Try int start_X = QPoint.SetX(dimentions.x2);

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups