C ++中的访问修饰符

访问修饰符用于在面向对象的编程中实现数据隐藏。C ++中使用三种类型的访问修饰符。这些是公共的,私人的和受保护的。有关这些的详细信息如下。

公共访问修饰符

声明为公共的类中的数据成员和成员函数对所有人(包括其他类)都可用。使用点运算符和类对象可以从程序中的任何位置访问它们。

给出了一个演示公共访问说明符的程序,如下所示。

示例

#include<iostream>

using namespace std;

class Add {

   public:

   int a, b;

   void sum() {

      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;

   }

};

int main() {

   Add obj;

   obj.a = 2;

   obj.b = 5;

   obj.sum();

   return 0;

}

输出结果

Sum of 2 and 5 is 7

在上面的程序中,Add类具有两个公共数据成员a和b。该函数sum()显示a和b的总和。如下所示。

class Add {

   public:

   int a, b;

   void sum() {

      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;

   }

};

在函数中main(),创建了Add类的对象。然后在中初始化a和b main()。因为它们是公共数据类型,所以可以这样做。最后sum()被调用,显示a和b的总和。如下所示。

Add obj;

obj.a = 2;

obj.b = 5;

obj.sum();

专用访问修饰符

被声明为私有的数据成员只能从该类内部的函数访问,而不能从该类外部的任何函数访问。Friend函数还可以访问类的私有数据成员。

演示私有访问修饰符的程序如下所示。

示例

#include<iostream>

using namespace std;

class Add {

   private:

   int a, b;

   public:

   void setdata(int x, int y) {

      a = x;

      b = y;

   }

   void sum() {

      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;

   }

};

int main() {

   Add obj;

   obj.setdata(9,5);

   obj.sum();

   return 0;

}

输出结果

Sum of 9 and 5 is 14

在上面的程序中,Add类具有两个私有数据成员a和b。该函数setdata()提供a和b的值,因为它们是私有变量。该函数sum()显示a和b的总和。如下所示。

class Add {

   private:

   int a, b;

   public:

   void setdata(int x, int y) {

      a = x;

      b = y;

   }

   void sum() {

      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;

   }

};

在函数中main(),创建了Add类的对象。然后setdata()调用该函数以初始化a和b,因为它们是私有变量。最后sum()被调用,显示a和b的总和。如下所示。

Add obj;

obj.setdata(9,5);

obj.sum();

受保护的访问修饰符

声明为保护的类的数据成员与声明为私有的那些数据成员相似。它们不能在类外部直接访问,但是可以由基类的派生类访问。

演示C ++中受保护的访问修饰符的程序如下-

示例

#include<iostream>

using namespace std;

class Parent {

   protected:

   int a, b;

};

class Child: public Parent {

   public:

   void getdata(int x, int y) {

      a=x;

      b=y;

   }

   void putdata() {

      cout<<"a = "<<a<<endl;

      cout<<"b = "<<b<<endl;

   }

};

int main() {

   Child obj;

   obj.getdata(9,1);

   obj.putdata();

   return 0;

}

输出结果

a = 9

b = 1

在上面的程序中,父类具有两个受保护的变量a和b。如下所示。

class Parent {

   protected:

   int a, b;

};

Child类具有两个函数getdata()putdata()它们采用a和b的值并分别显示它们。这些函数可以做到这一点,因为a和b是受保护的变量,而Child是Parent的派生类。下面的代码片段如下-

class Child: public Parent {

   public:

   void getdata(int x, int y) {

      a = x;

      b = y;

   }

   void putdata() {

      cout<<"a = "<<a<<endl;

      cout<<"b = "<<b<<endl;

   }

};

在该函数中main(),创建Child类的对象obj。然后调用函数getdata()putdata()。如下所示。

Child obj;

obj.getdata(9,1);

obj.putdata();

以上是 C ++中的访问修饰符 的全部内容, 来源链接: utcz.com/z/316317.html

回到顶部