在C++中Friend函数和Virtual函数的区别

在C++中Friend函数和Virtual函数的区别

友元类可以访问被声明为友元的其他类的私有和受保护成员。有时允许特定类访问其他类的私有成员是有用的。类似地,友元函数是在类作用域之外声明的函数。该函数可以像普通函数一样被调用,并包括对象/参数。它通常用于用于重载<<和>>以进行I/O。它通常可以访问其友元的任何成员类。

举例:

class GFG  
{ 
 private: 
 {
 Public: 
 {  
 friend void check();  
 }

void check();  

现在谈论第二个函数是虚函数。所以,虚函数基本上是在基类中声明的类成员函数。在这种情况下,使用虚关键字使基类成员函数成为虚函数。它还支持编译时和运行时的多态性。它还允许派生类简单地替换由基类提供或给定的实现。

举例:

class GFG  
{  
  Public:  
          Virtual return_type function_name(arguments)  
         {  
         …..  
         }  
}:  
   class A  
  {  

到目前为止,我们已经讨论了友元函数和虚函数,现在让我们看看它们之间的主要区别,甚至更好地掌握它。

友元函数 __ 虚函数 __
非成员函数通常可以私有访问类的表示。 它是一个可以由派生类覆盖的基类函数。
它用于访问私有和受保护的类。 它用于确保为对象调用正确的函数,无论使用什么表达式来创建函数类。
它在类作用域之外声明。使用“friend”关键字进行声明。 它在基类中声明,通常由派生类重新定义。使用“virtual”关键字进行声明。
它通常用于使非成员函数访问类的隐藏成员。 它通常需要告诉编译器在函数上执行动态链接的后期绑定。
它们支持以前隐藏的类的共享信息,提供了C++的数据隐藏限制逃脱方法,可以访问未继承的类的成员等。 它们支持面向对象编程,确保函数被覆盖,可以成为其他函数的朋友等。
即使不是该类的成员,它也可以访问该类的私有成员。 它用于多态性的工作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程