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 = 9b = 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