广州市建设厅官方网站,上蔡网站建设公司,建设钓鱼网站源码,wordpress怎么设置页面导航1、背景介绍 在C中#xff0c;类#xff08;class#xff09;的三种访问修饰符#xff08;access specifiers#xff09;用于控制类的成员#xff08;属性和方法#xff09;的访问权限。这些修饰符决定了类成员在类的外部是否可以被访问。以下是这三种访问修饰符的详细…1、背景介绍 在C中类class的三种访问修饰符access specifiers用于控制类的成员属性和方法的访问权限。这些修饰符决定了类成员在类的外部是否可以被访问。以下是这三种访问修饰符的详细说明 public公有: 公有成员在类的内部和外部都可以被访问。公有成员为类的接口部分通常包括允许外部访问的方法和属性。 private私有: 私有成员只能在类的内部被访问不能在类的外部直接访问。私有成员通常包括那些实现类的内部逻辑和状态的细节不应该被外部直接访问。 protected保护: 保护成员在类的内部可以被访问在类的外部不能被直接访问。 外部可以理解为创建的类对象内部为类的成员函数。
2、类中属性访问权限示例介绍 下面结合代码介绍public、private、protected修饰符对类中成员变量与成员函数的权限访问限制。
2.1、public修饰 公有public成员在程序类的外部和内部均可访问。如下定义的类成员函数与变量均使用public修饰因此创建的类对象Box boxObj可以访问类的函数与变量。同时类中成员函数Area()可以访问变量如下所示。
#includeiostream
using namespace std;
class Box
{
//类变量修饰
public:double width;//宽度double length;//长度//类函数修饰
public:double Area();//计算面积
};
double Box::Area()
{return width*length;
}int main()
{Box boxObj;boxObj.length 4;boxObj.width 2;cout width of box is boxObj.width endl;cout length of box is boxObj.length endl;cout area of box is boxObj.Area() endl;return 0;
}运行结果如下 2.2、private修饰 私有private成员类的外部是不可访问的只有类可以访问私有成员。如下图变量length为私有变量在外部定义的对象Box boxObj已经无法访问变量length。但是类的成员函数Area()、SetLength()函数可以访问变量length。 修改后的可运行代码如下
#includeiostream
using namespace std;
class Box
{
//类变量修饰
public:double width;//宽度
private:double length;//长度//类函数修饰
public:double Area();//计算面积void SetLength(double length);
};
double Box::Area()
{return width*length;
}
void Box::SetLength(double length)
{this-length length;//this可以看成创建一个特殊类对象这个对象可以访问类的所有成员变量和函数
}int main()
{Box boxObj;boxObj.SetLength(4);boxObj.width 2;cout width of box is boxObj.width endl;cout area of box is boxObj.Area() endl;return 0;
}运行结果如下 2.3、protected修饰 在同一类中受保护的protected对象与private相同类的外部是不可访问的只有类成员函数可以访问私有成员。protected修饰的length变量无法被外部BoxObj进行访问但是可以被类中成员函数Area setLength访问。 3、小结 public、private、protected修饰符可以控制成员变量与成员函数访问权限从类的成员访问权限上看private、protected效果一样。