C++类成员的访问权限

C++类成员的访问权限

 

C++通过publicprotectedprivate三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符

C++ 中的 publicprivateprotected 只能修饰类的成员,不能修饰类,C++中的类没有共有私有之分。

类的内部(定义类的代码内部),无论成员被声明为 publicprotected 还是 private都是可以互相访问的,没有访问权限的限制。

类的外部(定义类的代码之外),只能通过对象访问成员,并且通过对象只能访问public属性的成员,不能访问 private、protected 属性的成员。

 

#include<iostream>

using namespace std;

 

//类的声明

class Student

扫描二维码关注公众号,回复: 1830030 查看本文章

{

 private: //私有

 char *m_name;

  intm_age;

 float m_score;

 

 public://共有

 void setname(char *name);

 void setage(int age);

 void setscore(float score);

 void show();

};

 

//成员函数的定义

void Student::setname(char *name)  {m_name=name;}

void Student::setage(int age)        {m_age=age;}

void Student::setscore(float score)   {m_score=score;}

void Student::show()

{  cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;}

 

int main()

{

 //在栈上创建对象

  Student stu;

  stu.setname("栀子花");

  stu.setage(15);

  stu.setscore(92.5f);

  stu.show();

 

 

 //在堆上创建对象

  Student *pstu = new Student;

  pstu -> setname("樱花");

  pstu -> setage(16);

  pstu -> setscore(96);

  pstu -> show();

 

 

return 0;

}

 

i.             类中的成员变量 m_namem_age m_ score 被设置成 private 属性,在类的外部不能通过对象访问。也就是说,私有成员变量和成员函数只能在类内部使用,在类外都是无效的。

ii.             成员函数 setname()setage() setscore() 被设置为 public 属性,是公有的,可以通过对象访问。

iii.             成员变量大都m_开头,这是约定成俗的写法,不是语法规定的内容。以m_开头既可以一眼看出这是成员变量,又可以和成员函数中的形参名字区分开。

iv.             因为三个成员变量都是私有的,不能通过对象直接访问,所以必须借助三个public 属性的成员函数来修改它们的值

v.             给成员变量赋值的函数通常称为 set 函数,它的名字通常以set开头,后跟成员变量的名字;读取成员变量的值的函数通常称为 get 函数,它的名字通常以get开头,后跟成员变量的名字。

vi.             声明为 private 的成员和声明为 public 的成员的次序任意,既可以先出现 private 部分,也可以先出现public 部分。如果既不写 private 也不写 public,就默认为 private

猜你喜欢

转载自blog.csdn.net/erduoerdu/article/details/80041784
今日推荐