zoukankan      html  css  js  c++  java
  • 三:类和对象

    1:主要介绍类的构成,成员函数,对象的定义和使用,构造函数与析构函数等内容。

    2:类的构成

      Class 类名:{

       Public:

         公有数据成员;

         公有成员函数;

      Private:

         私有数据成员;

         私有成员函数;

    }

    Private:类的私有部分,这一部分的数据成员和成员函数都称为类的私有成员,私有成员只能由本类的成员函数访问,而类外部的任何访问都是非法的,这样私有成员隐藏在类的内部,在外部无法访问。

    Protected:保护成员可以由本类的成员函数访问,也可以由本类的派生类的成员函数访问,而类外的任何访问都是非法。

    Public:类外可以访问。

    3:成员函数的定义

    1)类的成员函数是函数的一种基本的格式与函数一致,成员函数可以访问本类中任何成员(包括公有,私有和保护成员)。

    2)成员函数在类外定义的一般形式是:

       返回值类型  类名::成员函数名(参数表)

       {

          函数体

    }

    3)成员函数在类外声明

    #include<iostream>
    using namespace std;
    class Date{
    public:
        void SetDate( int y ,int m, int d);
        void ShowDate();
    private:
        int year;
        int month;
        int day;
    };
    
    void Date::SetDate( int y ,int m , int d ){
        year = y;
        month = m;
        day = d;
    }
    
    void Date::ShowDate(){
        cout<<year<<"  "<<endl;
        cout<<month<<" "<<endl;
        cout<<day<<" "<<endl;
    }
    
    int main( void )
    {
       Date date1;
       date1.SetDate(2019,10,20);
       date1.ShowDate();
    
    }

    4: 对象的定义和使用

    1)类和对象的关系

    :类是具有相同属性和行为的事物所构成的集合

    对象:类的实例化,类似于 int iint(数据类型) i(实际的整形变量 )。

    2)类,对象的声明和使用

     Class 类名{}//

     类型 对象名1,对象名2

    3)对象成员的访问

    对象名.数据成员,对象名->对象成员

    4)类的作用域和访问属性

    Private:类的私有部分,这一部分的数据成员和成员函数都称为类的私有成员,私有成员只能由本类的成员函数访问,而类外部的任何访问都是非法的,这样私有成员隐藏在类的内部,在外部无法访问。

    Protected:保护成员可以由本类的成员函数访问,也可以由本类的派生类的成员函数访问,而类外的任何访问都是非法。

    Public:类外可以访问。

    5:构造函数和析构函数

     构造函数和析构函数都是类的成员函数,他们都是特殊的成员函数,执行特殊的功能

    1)对象的初始化和成员函数

      构造函数名称必须和类名一致,可以有任意类型的参数,有任何返回值类型,不返回任何数值,他不需要自己调用,创建对象的时候隐式调用。

      形式1:类名 对象名(【实参列表】)

      形式2  类型 *指针变量名= new 类名(【实参列表】)

    Date *date = new Date( 2019,20,10);

    2)用成员初始化列表对数据成员进行初始化

     Date::Date( int m, int y, int d):year(y),month(m),day(d)

    3)析构函数

       析构函数是一种特殊的成员函数,他在执行的时候与构造函数是相反的操作,通常用于撤销对象时的一些清理工作,如释放分配给对象的内存空间。

     析构函数的特点:析构函数与构造函数名字相同,但是前面有一个~好,析构函数没有返回值没有参数不能被重载,因此一个类中只能由一个析构函数,撤销对象的时候会自动调用析构函数。

  • 相关阅读:
    BZOJ 1977: [BeiJing2010组队]次小生成树 Tree( MST + 树链剖分 + RMQ )
    BZOJ 2134: 单选错位( 期望 )
    BZOJ 1030: [JSOI2007]文本生成器( AC自动机 + dp )
    BZOJ 2599: [IOI2011]Race( 点分治 )
    BZOJ 3238: [Ahoi2013]差异( 后缀数组 + 单调栈 )
    ZOJ3732 Graph Reconstruction Havel-Hakimi定理
    HDU5653 Bomber Man wants to bomb an Array 简单DP
    HDU 5651 xiaoxin juju needs help 水题一发
    HDU 5652 India and China Origins 并查集
    HDU4725 The Shortest Path in Nya Graph dij
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/12831574.html
Copyright © 2011-2022 走看看