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;
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.