访问控制
1、private
class里面的 private: 的成员外界不能访问。其作用保护一些数据,避免用户对成员做一些错误设置,可用public成员函数来限定一些情况,(比如年龄不小于0)
2、public
class里面的 public: 的成员外界函数能直接访问修改。
代码如下:
#include <stdio.h>
class Person {
private:
char *name;
int age;
char *work;
public:
void setName(char *name)
{
this->name = name; //name为啥是形式参数而不是 上面的成员name, 因为c++的就近原则。
}
int setAge(int age)
{
if (age < 0 || age > 150)
{
this->age = 0;
return -1;
}
this->age = age;
return 0;
}
void printInfo(void)
{
printf("name = %s, age = %d, work = %s\n", name, age, work);
}
};
int main(int argc, char **argv)
{
Person per;
//per.name = "zhangsan"; //private: 的成员class外界不能访问
per.setName("zhangsan"); //通过public函数操作private变量
per.setAge(200);
per.printInfo();
return 0;
}
3、protected 成员
受保护成员可以被类内部和派生类访问,但是不能被类外部访问。通常,受保护成员被用于实现类的细节,例如类的实现细节、派生类的实现等。在类的定义中使用关键字 protected 可以声明受保护成员。
实例:文章来源:https://www.toymoban.com/news/detail-604597.html
class Animal {
protected:
int age;
};
class Dog : public Animal {
public:
void setAge(int a) {
age = a;
}
void displayAge() {
cout << "Dog's age is: " << age << endl;
}
};
int main() {
Dog d;
d.setAge(5);
d.displayAge();
return 0;
}
在这个例子中,Animal类有一个protected成员变量age,它可以被Animal类的子类Dog访问。在Dog类中,setAge()函数可以设置age的值,而displayAge()函数可以显示它的值。在main函数中,我们创建了一个Dog对象d,并使用setAge()函数设置了它的年龄,然后使用displayAge()函数显示了它的年龄。文章来源地址https://www.toymoban.com/news/detail-604597.html
到了这里,关于C++[第二章]--访问控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!