码迷,mamicode.com
首页 > 其他好文 > 详细

OOP 2.1 类和对象的基本概念2

时间:2018-02-21 13:26:34      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:调用   写法   定义   get   down   err   init   erro   ror   

1、成员函数的另一种写法:类的成员函数和类的定义分开写

  • e.g.

    class rectangle
    {
    public:
    int w,h;
    int area();
    int p();
    void init(int w_,int h_);
    };
    int rectangle::area(){
    return w*h;
    }
    int rectangle::p(){
    return 2*(w+h);
    }
    void rectangle::init(int w_,int h_){
    w=w_;h=h_;
    }
    //rectangle::说明后面的函数是rectangle类的成员函数,而不是普通函数。就一用要通过对象、对象的指针、对象的引用才能调用

2、类成员的可访问范围

  • 在类的定义中可以使用关键字说明类成员可被访问的范围,关键词可多次先后出现:
    • private:私有成员,只能在成员函数内访问
    • public:公有成员,可以在任何地方访问
    • protected:保护成员
  • 如果没有关键词,则缺省认为是私有的
  • 在类的成员函数内部,能访问:①当前对象的全部属性、函数 ②同类其他对象的全部属性、函数
  • 在成员函数以外的地方,只能够访问该类对象的公有成员
    e.g.

    class person
    {
    private:
    char szname[30];//私有 名字
    public:
    int salary;
    void setname(char *name);
    void getname(char *name);
    void average(person e1,person e2);
    };
    void person::setname(char *name)
    {strcpy(szname,name)};//OK
    void person::getname(char *name)
    {strcpy(name,szname);}//OK
    void person::average(person c1,person c2)
    {
    cout<<c1.szname;//OK 访问其他同类对象的私有成员
    cout<<(c1.salary +c2.salary)/2;
    }
    int main()
    {
    person e;
    strcpy(e.ezname,"Tom")//error 编译错 在成员函数以外的地方不能访问私有成员
    e.setname("Tom")//OK
    e.salary=5000;//OK
    return 0;
    }

OOP 2.1 类和对象的基本概念2

标签:调用   写法   定义   get   down   err   init   erro   ror   

原文地址:https://www.cnblogs.com/fzu-031702148/p/8456492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!