ITPub博客

首页 > 应用开发 > IT综合 > C++ protected权限成员以及类和结构体区别

C++ protected权限成员以及类和结构体区别

原创 IT综合 作者:gaopengtttt 时间:2016-08-10 18:49:16 0 删除 编辑
我们已经知道在C++类中默认的访问权限是private,在C++结构体中默认的访问权限是public
其实在C++中类和结构体没有严格的界限,区别如上。
那么这里说明一下protected权限。
这个protected访问权限只是说明外部调用函数不能直接调用类成员,但是继承类确能够直接访问。
我们知道基类的private成员继承类不能直接调用,必须通过public方法进行调用,
这里又多了一项可以继承类可以通过protected方法进行调用


如下
class normalu
{
        private:
                string name;
                unsigned int id;
                char* password;
        public:
                unsigned int pri;
                normalu(string username,unsigned int uid,unsigned int upri,const char* upass):name(username),id(uid),pri(upri)
        {
                password = new char[strlen(upass)+1];
                strcpy(password,upass);
        }
                normalu(const normalu& innor);
                virtual ~normalu();
                void show()
                {
                        cout<<"name:"<<name<<endl;
                        cout<<"id:"<<id<<endl;
                }
                virtual void checkpri(void)
                {
                        if(pri>5)
                        {
                                cout<<"User Is Normal User!\n";
                                show();
                                exit(0);
                        }
                        else
                        {
                                cout<<"User Is Not Normal User!\n";
                                show();
                                cout<<"User Is Only register user!\n";
                        }
                }
};
我们可以修改一下
class normalu
{
        private:
                string name;
                unsigned int id;
                char* password;
        protected:                            //将pri和show()函数作为保护权限成员保证外部不能调用更加合适
                unsigned int pri;
                void show()
                {
                        cout<<"name:"<<name<<endl;
                        cout<<"id:"<<id<<endl;
                }


        public:
                normalu(string username,unsigned int uid,unsigned int upri,const char* upass):name(username),id(uid),pri(upri)
        {
                password = new char[strlen(upass)+1];
                strcpy(password,upass);
        }
                normalu(const normalu& innor);
                virtual ~normalu();
                virtual void checkpri(void)
                {
                        if(pri>5)
                        {
                                cout<<"User Is Normal User!\n";
                                show();
                                exit(0);
                        }
                        else
                        {
                                cout<<"User Is Not Normal User!\n";
                                show();
                                cout<<"User Is Only register user!\n";
                        }
                }
};


将pri和show()函数作为保护权限成员保证外部不能调用更加合适。
在没有其他什么需要说明的了

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7728585/viewspace-2123285/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
wxh gp_22389860 公众号 MySQL学习 书籍 深入理解MySQL主从原理

注册时间:2021-06-07

  • 博文量
    868
  • 访问量
    3495543