Arrow箭头运算符在C ++中作为类成员访问运算符

先前,我们讨论了C ++中的类成员访问运算符,该运算符用于访问类的公共成员。

要访问类的公共成员,我们使用object_name.member_name。

使用指向对象的指针访问类成员

如果您有一个指向对象的指针并想要访问类成员,则可以通过使用两个运算符Asterisk(*)和Dot(。)运算符的组合来访问它们。

语法:

(*object_pointer_name).member_name;

考虑给定的类声明

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

考虑到main(),这里我们使用*和的组合访问成员函数。运算符:

int main(){
	//指向对象声明的指针
	sample *sam = new sample();
	
	//赋值给a和back-
	(*sam).init(100);
	(*sam).b=200;
	
	//打印值
	(*sam).display();
	cout<<"b: "<<(*sam).b<<endl;
	
	return 0;
}

箭头运算符(->)代替星号(*)和点(。)运算符

我们可以使用Arrow运算符(->)来访问类成员,而不是使用两个运算符Asterisk(*)和Dot(。)运算符的组合,Arrow运算符在C ++编程语言中也称为“类成员访问运算符”。

语法:

object_pointer_name -> member_name;

考虑到main(),这里我们使用Arrow Operator访问成员

int main(){
	//指向对象声明的指针
	sample *sam = new sample();
	
	//赋值给a和back-
	sam->init(100);
	sam->b=200;
	
	//打印值
	sam->display();
	cout<<"b: "<<sam->b<<endl;	
	
	return 0;			
}

这是完整的程序

#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(){
	//指向对象声明的指针
	sample *sam = new sample();
	
	cout<<"Using * and . Operators\n";
	//赋值给a和back-
	(*sam).init(100);
	(*sam).b=200;
	
	//打印值
	(*sam).display();
	cout<<"b: "<<(*sam).b<<endl;
	
	cout<<"Using Arrow Operator (->)\n";
	//赋值给a和back-
	sam->init(100);
	sam->b=200;
	
	//打印值
	sam->display();
	cout<<"b: "<<sam->b<<endl;	
	
	return 0;			
}

输出结果

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