C++中的范围解析运算符

时间:2020-02-23 14:30:03  来源:igfitidea点击:

在本文中,我们将重点介绍C++中的4种Scope解析运算符。

什么是C++中的范围解析运算符?

" C++编程语言"由各种运算符组成,用于处理和操纵数据。
一种这样的运算符是"范围解析运算符(::)"。

范围解析运算符用于以下目的:

  • 当全局变量和局部变量共享相同的名称/标签时,访问全局数据变量。

  • 使我们能够在类外部定义成员函数。

  • 在另一个类中引用一个类。

  • 访问类的静态变量。

4种范围解析算子

现在让我们尝试使用范围解析运算符访问全局变量,如下所示:

1.当局部变量具有相同的名称时访问全局变量

当全局变量和局部变量具有相同的名称时,我们可以使用范围解析运算符访问全局变量,如下所示。

语法:

::variable-name;

例:

#include<iostream> 
using namespace std; 

int var = 100; //Global/class data member

int main() 
{ 
int var = 1; //Local data member 
cout << "Global variable--var: " << ::var; 
return 0; 
} 

输出:

Global variable--var: 100

此外,我们将尝试使用范围解析运算符在类外定义成员函数,如下所示:

2.使用::运算符在类外定义函数

语法:

return_type Class::function()
{}

例:

#include<iostream> 
using namespace std; 

class Scope 
{ 
  public: 
  void show(); 
}; 

//Function definition outside the class using :: operator
void Scope::show() 
{ 
  cout<<"Welcome to theitroad!!"; 
} 

int main() 
{ 
  Scope SC;
  SC.show();
  return 0; 
} 

在C++中,我们可以使用::运算符在类外定义函数,如上所示。

输出:

Welcome to theitroad!!

现在,将在C++中将范围解析运算符与名称空间一起使用。

3.具有标准名称空间的范围解析运算符

#include<iostream> 

int main()
{   int x =0;
	std::cout<<"Enter the value for x\n";
	std::cin>>x;
	std::cout<<"Value of x: "<<x;
} 

如果两个不同的名称空间具有相同的类名,则可以使用::运算符来区分它们,而不会出现如上所示的错误。
因此,此处cin和cout属于标准名称空间。

输出:

Enter the value for x
10
Value of x: 10

4.使用范围解析运算符访问类的静态数据成员

#include<iostream> 
using namespace std; 

class static_scope 
{ 
public: 
	static int var; 
	void show(int var) 
	{ 
	cout << "Static variable--var: " << static_scope::var<<endl; 
	cout << "Local variable--var: " <<var; 
	} 
}; 

int static_scope::var = 100; 

int main() 
{ 
	static_scope S; 
  int var = 20; 
	S.show(var); 

	return 0; 
} 

其中我们使用范围解析运算符访问了静态数据成员" var",如下所示。

输出:

Static variable--var: 100
Local variable--var: 20