C++要点摘录(六)面向对象和类的封装

面向对象的概念:

      变量表示属性,函数表示行为,C++编译器支持struct中使用变量和函数,还能够继承,所以可以使用struct可以用来描述类     

所以以下程序在C++编译器中能够编译成功

#include <stdio.h>

struct Biology 
{
    bool living;
};

struct Animal : Biology 
{
    bool movable;
    void findFood() 
    { 
    }
};

struct Plant : Biology 
{
    bool growable;
};

struct Beast : Animal 
{
    void sleep()
    { 
    }
};

struct Human : Animal 
{
    void sleep() 
    {
        printf("I'm sleeping...\n");
    }
    
    void work()
    {
        printf("I'm working...\n");
    }
};

int main(int argc, char *argv[])
{
    Human human;
    
    human.living = true;
    human.sleep();
    human.work();
    
    printf("Press any key to continue...");
    getchar();
    return 0;
}


类的封装:

     类通常非为类的实现细节和类的使用方式两个部分。

.使用类的时候,不需要关心其实现细节。

.当创建一个类时,才需要考虑其内部实现细节


封装的基本概念:1.并不是类的每个属性都是对外公开的

                            2.一些类的属性是对外公开的

                            3.  需要在类的表示法中定义属性和行为的公开级别

C++中类的封装:成员变量---C++中用于表示类属性的变量

                            成员函数---C++中用于表示类行为的函数

                            在C++中可以给成员变量和成员函数定义访问级别 :

                                   public-成员变量和成员函数可以在类的内部和外界访问和调用

                                   private-成员变量和成员函数只能在类的内部被访问和调用

类成员的作用域

     1.类成员的作用域都只在类的内部,外部无法直接访问:成员函数可以直接访问成员变量和调用其他成员函数

     2.类的外部可以直接通过类变量访问public

c++中用struct定义的类的所有成员默认为public


类的真正形态:1.struct在c语言中已经有了自己的含义,只能继续兼容

                          2.c++中提供了新的关键字class用于类定义

                          3.class和struct的用法是完全相同的,区别在于struct定义的类,所有成员(属性和方法)的默认属性是public,

                             class定义的类,成员(属性和方法)的默认属性是private。


小结:类的精华在于封装,将实现和使用方式分离

          C++中通过public和private实现类的封装

          类的定义和实现可以分开到不同的文件中


  





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值