Home » C++ programming language

Arrow Operator as Class Member Access Operator in C++



Learn: How to use Arrow Operator instead of Class Member Access Operator in C++ programming language, how to access members of a class through object pointer in C++?

Previously, we have discussed about Class Member Access Operator in C++ , which is used to access public members of a class.

To access public members of a class, we use object_name.member_name.

Accessing Class Members with Pointer to an Object

If you have a pointer to an object and want to access the class members, you can access them by using combination of two operators Asterisk (*) and Dot (.) operator.

Syntax:

(*object_pointer_name).member_name;

Consider the given class declaration

class sample
{
	private:
		int a;
	public:
		int b;
		void init(int a)
		{this->a = a;}
		void display()
		{cout<<"a: "<<a<<endl;}
};

Consider the main(), here we are accessing the member function by using combination of * and . Operators:

int main()
{
	//pointer to an object declaration
	sample *sam = new sample();
	
	//value assignment to a and back
	(*sam).init(100);
	(*sam).b=200;
	
	//printing the values
	(*sam).display();
	cout<<"b: "<<(*sam).b<<endl;
	
	return 0;
}

Arrow Operator (->) instead Asterisk (*) and Dot (.) Operator

We can use Arrow Operator (->) to access class members instead of using combination of two operators Asterisk (*) and Dot (.) operator, Arrow operator in also known as “Class Member Access Operator” in C++ programming language.

Syntax:

object_pointer_name -> member_name;

Consider the main(), here we are accessing the members using Arrow Operator

int main()
{
	//pointer to an object declaration
	sample *sam = new sample();
	
	//value assignment to a and back
	sam->init(100);
	sam->b=200;
	
	//printing the values
	sam->display();
	cout<<"b: "<<sam->b<<endl;	
	
	return 0;			
}

Here is the complete program

#include <iostream>
using namespace std;

class sample
{
	private:
		int a;
	public:
		int b;
		void init(int a)
		{this->a = a;}
		void display()
		{cout<<"a: "<<a<<endl;}
};

int main()
{
	//pointer to an object declaration
	sample *sam = new sample();
	
	cout<<"Using * and . Operators\n";
	//value assignment to a and back
	(*sam).init(100);
	(*sam).b=200;
	
	//printing the values
	(*sam).display();
	cout<<"b: "<<(*sam).b<<endl;
	
	cout<<"Using Arrow Operator (->)\n";
	//value assignment to a and back
	sam->init(100);
	sam->b=200;
	
	//printing the values
	sam->display();
	cout<<"b: "<<sam->b<<endl;	
	
	return 0;			
}

Output

Using * and . Operators 
a: 100
b: 200
Using Arrow Operator (->) 
a: 100
b: 200 





Quick links:
C FAQ(s) C Advance programs C/C++ Tips & Tricks Puzzles JavaScript CSS Python Linux Commands PHP Android Articles More...

Was this page helpful? Please share with your friends...

Are you a blogger? Join our Blogging forum.




Comments and Discussions





Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing » Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com (2015-2018), Some rights reserved.