Labels

Android (1) bash (2) boost (2) C (34) C++ (2) cheatsheet (2) CLion (6) css (3) Debian (33) DL (17) Docker (2) Dreamweaver (2) Eclipse (3) fail2ban (4) git (5) GitHub (4) Hacking (3) html (8) http (1) iOS (1) iPad (1) IRC (1) Java (31) javascript (3) Linux (167) Mac (19) Machine Learning (1) mySQL (48) Netbeans (4) Networking (1) Nexus (1) OpenVMS (6) Oracle (1) Pandas (3) php (16) Postgresql (8) Python (9) raid (1) RedHat (14) Samba (2) Slackware (47) SQL (14) svn (1) tar (1) ThinkPad (1) Virtualbox (3) Visual Basic (1) Visual Studio (1) Windows (2)

Sunday, 20 September 2020

C, C++ Structure - The . and the -> notation

 A brief reminder about dot and arrow operators.

The following is an example of the dot operator in a structure;

#include<iostream>

struct Person
{
   char name[30];
   int  age;
}  p;

int main()
{
strcpy(p.name,"John Boy Walton");
p.age =46;
printf("hello, my name is %s and I'm %d years old...\n",p.name,p.age);
}

As we can see from the above, we can't use p.name="whatever" as we would in a class as below for example;


#include <iostream>

using namespace std;

class MyClass
{
private: // Not actually required.
   int privateInt;
public:
   int myNum; // Class variable
   string myString; // Class variable
   int getPrivateInt() // Public GETTER method.

   {
    return privateInt;
   }

   void setPrivateInt(int anInt)// Public SETTER method.
   {
    privateInt=anInt;
   }

   int doubleMe(int anInt)
   {
    return anInt*2;
   }
};


int main()
{
MyClass o;           // Create object of MyClass
o.myNum = 15;   // Assign variable to object.
o.myString = "Some text"; // Assign variable to object.
o.setPrivateInt(665);


// MyClass
cout << o.myNum << endl;
cout << o.myString << endl;
cout << o.getPrivateInt() << endl;
cout << o.doubleMe(50) << endl;
return 0;
}


If p was a pointer to a Person object or an object of type Person then the -> operator would be used instead of the dot.

Using the top section of code as an example;

strcpy(p->name,"John Boy Walton");



"To access members of a structure, use the dot operator. To access members of a structure through a pointer, use the arrow operator." Source

No comments:

Post a Comment

Note: only a member of this blog may post a comment.