C++内里配置类成员的会见权限有何上风
在类的内部(界说类的代码内部),无论成员被声明为 public、protected 照旧 private,都是可以相互会见的,没有会见权限的限定。 在类的外部(界说类的代码之外),只能通过工具会见成员,而且通过工具只能会见 public 属性的成员,不能会见 private、protected 属性的成员。 本节重点讲授 public 和 private,protected 将在担任中讲授。 下面通过一个 Student 类来演示成员的会见权限:
#include <iostream> using namespace std;
//类的声明 classStudent{ private: //私有的 char *m_name; int m_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(){ //在栈上建设工具 Studentstu; 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; } 运行功效: 小明的年数是15,后果是92.5 李华的年数是16,后果是96 类的声明和成员函数的界说都是类界说的一部门,在现实开拓中,我们凡是将类的声明放在头文件中,而将成员函数的界说放在源文件中。 类中的成员变量 m_name、m_age 和m_ score 被配置成 private 属性,在类的外部不能通过工具会见。也就是说,私有成员变量和成员函数只能在类内部行使,在类外都是无效的。 成员函数 setname()、setage() 和 setscore() 被配置为 public 属性,是公有的,可以通过工具会见。 private 后头的成员都是私有的,直到有 public 呈现才会酿成共有的;public 之后再无其他限制符,以是 public 后头的成员都是共有的。 成员变量多半以m_开头,这是约定成俗的写法,不是语礼貌定的内容。以m_开头既可以一眼看出这是成员变量,又可以和成员函数中的形参名字区分隔。 以 setname() 为例,假如将成员变量m_name的名字修改为name,那么 setname() 的形参就不能再叫name了,得换成诸如name1、_name这样没有明明寄义的名字,不然name=name;这样的语句就是给形参name赋值,而不是给成员变量name赋值。 由于三个成员变量都是私有的,不能通过工具直接会见,以是必需借助三个 public 属性的成员函数来修改它们的值。下面的代码是错误的:
Studentstu; //m_name、m_age、m_score 是私有成员变量,不能在类外部通过工具会见 stu.m_name = "小明"; stu.m_age = 15; stu.m_score = 92.5f; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |