类和对象—类的构成、定义以及实例化对象、 私有成员的访问方式

  • Post author:
  • Post category:其他


1 – 类的构成

对于研究的一个事物,可以称之为数据或者称之为一个对象,研究一个对象时,主要分为属性和行为,数据就相当于成员变量,行为就是函数,每一个对象应该都是由这两部分组成,并且对于每一个对象都有公有的属性和行为以及私有的属性和行为,所以对于对象还要设置访问权限

所以类具有封装性即可保存变量,又可以保存函数,并且具有访问权限

2 – 类的定义以及实例化对象

定义类:
    class 类名{
        成员变量或者成员函数;  
    };

实例化对象就是定义类的变量:
    类名 对象名;

案例

#include <iostream>
#include <string.h>

using namespace std;

//定义一个类
class Person
{
    //类中成员的访问权限:public、private、protected
    //public:公有的权限,类外可以直接访问,struct默认就是公有权限
    //private:私有的权限,类内可以随便访问,但是类外不能直接访问,类的默认权限是私有权限
    //protected:受保护的权限,主要涉及到继承的时候使用,不涉及继承跟private一样
public:
    int p_ID;
    char p_Name[32];
    char p_Sex;
    int p_Age;
};

void test1()
{
    //定义一个类的变量,称之为对象
    //定义变量称之为实例化对象
    Person p;
    p.p_ID = 1001;
    strcpy(p.p_Name, "zhangsan");
    p.p_Sex = 'B';
    p.p_Age = 20;

    cout << p.p_ID << " " << p.p_Name << " " << p.p_Sex << " " << p.p_Age << endl;
}

int main(int argc, char *argv[])
{
    test1();

    return 0;
}

3 – 私有成员的访问方式

私有成员访问方式:

使用公有的成员函数(现在讲)

友元(后期讲)

#include <iostream>
#include <string>

using namespace std;

class Person{
public:
    int p_ID;
    string p_Name;

    //私有成员通过公有的成员函数对其进行操作并在外部访问
    void setMsg(int age, string eid)
    {
        p_Age = age;
        p_Eid = eid;
    }

    void getMsg()
    {
        cout << p_ID << "-" << p_Name << "-" << p_Age << "-" << p_Eid << endl;
    }

private:
    int p_Age;
    string p_Eid;
};

void test1()
{
    Person p1;
    p1.p_ID = 1001;
    p1.p_Name = "zhangsan";
    //私有成员无法在类外直接访问
    //p1.p_Age = 20;
    //p1.p_Eid = "19990901";
    //cout << p1.p_ID << "-" << p1.p_Name << "-" << p1.p_Age << "-" << p1.p_Eid << endl;

    p1.setMsg(20, "19990901");
    p1.getMsg();
}

int main(int argc, char *argv[])
{
    test1();

    return 0;
}

综上:一般为了便于按照自己的方式设置成员变量的值,所以一般成员变量都会定义成私有的,然后通过公有的成员函数去操作



版权声明:本文为weixin_46065254原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。