美文网首页
C++ 类和对象 (一)(4)

C++ 类和对象 (一)(4)

作者: maskerII | 来源:发表于2022-06-17 22:15 被阅读0次

1. 类和对象的概念

类 是自定义数据类型,是由C语言结构体演化而来
对象 是类实例化出的,用数据类型定义的一个变量

class Maker // 这个就是类
{
public:
    int a; // 成员变量
    void func() // 成员方法
    {
        cout << "func" << endl;
    }
};

int main()
{
    Maker m; // m 就是对象
    cout << "hhh" << endl;
    return EXIT_SUCCESS;
}

2. C和C++中struct的区别

  • c语言struct只有变量
  • c++语言struct 既有变量,也有函数

3. 类的封装

类的封装是把属性(变量)和方法(函数)封装到类内,然后给这些数据赋予权限

class  Maker
{
private: // 私有权限
    int id;
    string name;
public: // 公有权限
    void setM(string Name,int Id){
        id = Id;
        name = Name;
    }

    void printMaker() {
        cout << "name : " << name << "  id: " << id << endl;
    }

    void getA() {
        cout << "Maker a = " << a << endl; 
    }
protected: // 保护权限
    int a;

};

封装的优点

  • 防止乱调用函数和变量,出现错误
  • 维护代码更方便

4. 类的权限

类的权限分三种:公有权限(public)、私有权限(private)、保护权限(protected)
1. 类外不能访问私有权限的成员
2. 类外可以访问公有权限的成员
3. 类外不可以访问保护权限的成员,但子类的类内可以访问父类的保护权限的成
4. 类内无权限之分,都可以访问


class  Maker
{
private: // 私有权限
    int id;
    string name;
public: // 公有权限
    void setM(string Name,int Id){
        id = Id;
        name = Name;
    }

    void printMaker() {
        cout << "name : " << name << "  id: " << id << endl;
    }

    void getA() {
        cout << "Maker a = " << a << endl; 
    }
protected: // 保护权限
    int a;

};

// 继承 ,公有继承 class 子类名:权限 父类
class Son:public Maker {
public:
    void func() {
        // 下面的这个a是从父类复制过来的
        a = 20; // 子类的类内可以访问父类的保护权限的成员
    }
    void getS() {
        cout << "Son a = " << a << endl;
    }

};

void test01() {
    Maker m;
    m.setM("Emily",10);
    //  m.a; // 类外不可以访问保护权限的成员
    m.printMaker();
}

5. 尽量把属性设置为私有权限

1.可以控制属性的读写
2.可以赋予客户端访问数据的一致性
3.可以保护属性的合法性

class Maker
{
private:
    string name;
    int age;
public:
    void setName(string mName) {
        name = mName;

    }
    string getName(){
        return name;
    }

    void setAge(int mAge) {
        age = mAge;
    }

    int getAge() {
        return age;
    }
};

6. C++ 结构体和类的区别

结构体的默认权限是公有的,类的默认权限是私有的

// 结构体的默认权限是公有的,类的默认权限是私有的
struct Maker1
{
    int a;
    void func()
    {
    }

public:
    int b;
};

class Maker2
{
    int a;
    void func()
    {
    }
public:
    int b;
};

int main()
{
    Maker1 m1;
    Maker2 m2;
    m1.b;
    m2.b;

    m1.a;
   // m2.a; 类的默认权限是私有的
    return EXIT_SUCCESS;
}

相关文章

  • C++ 类和对象 (一)(4)

    1. 类和对象的概念 类 是自定义数据类型,是由C语言结构体演化而来对象 是类实例化出的,用数据类型定义的一个变量...

  • C++零基础教程之类和对象初识

    C++ 类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核...

  • C++面向对象

    C++类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心...

  • [C++之旅] 7 C++类和对象

    [C++之旅] 7 C++类和对象 类和对象 类:相当于一个种类,以狗狗为例,狗就是一个类,狗这个类里包含无数种不...

  • 一、类和对象

    *************************C++ 第一天 类和对象********************...

  • C++ — 类 & 对象超详解

    C++ 类 & 对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ ...

  • C++系列之面向对象

    C++类&对象 C++类定义 类&对象详解 概念描述类成员函数[https://www.runoob.com/cp...

  • 网易云C++第四周笔记(GeekBand)

    1.虚指针和虚表在C++的对象模型中,子类对象中有父类的成分,只要类中有虚函数,那么在对象的内存空间就会加4个字节...

  • C++类和对象

    类定义: 类实例化对象:从栈中实例化,从堆中实例化。 访问限定符:public 公有的protected 受保护的...

  • C++类和对象

    C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为...

网友评论

      本文标题:C++ 类和对象 (一)(4)

      本文链接:https://www.haomeiwen.com/subject/tughvrtx.html