C++第二篇--访问控制
1. 引入
上一篇博文中从结构体引到了类,类当中不仅有数据成员还有一些函数,这些函数被称为成员函数。今天介绍新的内容,类当中的访问控制。
2. 访问控制
当你不添加任何声明,比如public,那类中默认是private权限,C++中有三种访问权限:
- public: 类外的程序可以使用
- private:只供类内部的函数使用
- protect:可以被派生类访问,不可以被类外访问,后面会细说
3. 访问控制代码
我们为了不随意更改类中的变量,便将数据成员设置为私有,封闭起来,提供公有的成员函数接口供类外部设置数据。
Person.cpp
#include <stdio.h>
class Person{
private:
char *name;
char age;
char *work;
public:
void setName(char *name){
this->name = name; //this->,指向当前对象
}
int setAge(int age){
if(age<0 || age>120){
this->age = 0;
//return -1;
}
else
{
this->age = age;
}
return age;
}
void setWork(char *work){
this->work = work;
}
void printInfo(void)
{
printf("name is %s,age is %d,work is %s\n",name,age,work);
}
};
int main(int argc,int **arcv)
{
Person per;
per.setName("LKQ");
per.setAge(20);
per.seyWrok("Student");
per.printInfo();
return 0;
}
3. 补充
上文成员函数中name,age,work代表的是setName、setAge、setWork函数传递进来的参数,而不是class中的变量,因为在c语言和C++中的就近原则。