C++:类

C++:面向对象(OOP)    

1、类的三特点:封装,继承,多态

2、类:就是某一类事物的模板描述

    2.1属性:实物的特征的描述

    2.2方法:某一类实物的功能的描述

        C++类的定义:

        class 类型名

        {

        属性

        方法    

        };

    2.3对象:某一个类事物的具体实例。(类的实例化)

       对象的组成:属性(就是一个实物的特征),方法(事物具有的功能方法)

        实例化:  类名  对象名;

    

        注:一个类属于所有人该类的实物,一个实物只能属于一个类

    2.4消息:向某一个对象(具体的实体)发送一个消息

            对象.消息

         引用特征属性:  对象.成员; 

                         指针->成员

                eg: we.age;
        

    2.5封装:让数据与外界产生隔离

        public 公有  :类内外界都可访问

        protected 保护:外界不能访问,自己可以访问

        private  私有:外界不能访问,自己可以访问

    2.6分配的对象空间:只有数据空间

    2.6构造函数:对象只能由构造函数来分配空间并初始化

        class 类名

        {

        //构造函数

            类名()    无形参的构造:默认构造函数

            {

            }

        };

            1、默认构造函数:没有形参

            类名()

            {

            }

            注:如果用户不显示的定义构造函数,编译器会默认添加无参构造函数

            2、拷贝构造函数:对象的复制(调用拷贝构造函数)

                类名(类名&);

                注:如果用户不显示的定义拷贝构造,编译器会默认添加拷贝构造

                
            浅

            深

            
              
            
            
                
        2、对象的生命周期:

            1、分配空间:数据区(动态区,静态区,堆区)

                 动态区:在函数内实例化的(非staic)对象

                        当函数被调用时,才会分配空间调用构造函数

                 静态区:在函数外,或者staic修饰的对象 

                        当程序运行就会分配空间调用构造函数

                        注:如果static修饰的局部静态区变量,当函数被调用时

                            才调用构造函数

                 堆区:两个运算符分配空间与释放空间

                        new 类型(实参)

                        delete 

                    注:malloc只分配数据空间,new分配空间,实例化对象

    2.7定义类的方法时:

        1、在类内定义

            class student

            {

            方法:

                void show()

                {

                }

            };

        2、在类外定义:属于该类

            1、先在类内声明

            class student

            {

            方法:

                void show();

            };
            
            void student::show()

            {

            }

    2.8初始化列表:当实例化时,对象调用构造函数分配空间和初始化

      方法1:

        student()

        {

            id=0;

            sex='m';

            strcpy(name,"nul");

        }

        方法2:

        student():id(值),sex(‘m’)

        {

            strcpy(name,"nul");

        }    

        方法1与方法2等价

    2.9在类外如何访问非公有成员?

       解决方法:该类提供一个公有的接口    

    2.10类成员的作用域:

        1类的成员作用域:只在类内(只能在类内访问,不能在类访问)

        2、作用域符:

            类名::成员;

    2.11对象指针变量:专门用于存储对象的指针

        定义指针变量:  类型名* 变量名;    (没有实例化)

        成员属性中有一个特殊的指针:this  指向自己

  eg:  人类:李飞,刘淼。。。  

       猫:小花,小黑,小美      

    狗:刘二狗,。。

            //注:分号不能忘记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值