面向对象程序设计1.1 类和对象

一、定义类 

知识点在注释里

//定义类
class Date
{
private:
    int year;
    int month;
    int day;
    //数据成员,默认为私有

public:
    Date(){}//不带参数的构造函数

    Date(int year,int month,int day)//带参数的构造函数
    {
        this->year=year;
        this->month=month;
        this->day=day;
    }

    /*这里可以缺省参数
    Date(int year=2000,int month=1,int day=1)//带参数的构造函数
    {
        this->year=year;
        this->month=month;
        this->day=day;
    }*/

    Date(const Date&t)  //拷贝构造函数,浅拷贝,系统默认会有
    {
        year=t.year;
        month=t.month;
        day=t.day;
    }
    /*  
        Date date1=(2004,6,5)
        Date date2;
        date2=date1;(错误)
        Date date2=date1;(正确)
        等号需要运算符重载才可以使用。
    */

    ~Date() //析构函数
    {
        cout<<"Distract"<<endl;     //当调用析构函数的时候会输出distract。
    }
    void print()    //普通成员函数
    {
        cout<<year<<"\t"<<month<<"\t"<<day<<endl;
    }

};

二、定义对象

普通对象

//普通对象
    Date d1(2004,6,5);
    Date d2;

对象数组

//对象数组 
Date arr[5];
 arr[0].print();

对象指针

//对象指针
    Date *p;
    p=&d1;
    p->print();
    (*p).print();

引用

//引用
    Date &w=d1;
    w.print();

动态对象创建

  //动态创建对象
    Date *q=new Date(2008,8,8);
    q->print();
    delete q;

--完整代码--

#include<iostream>
using namespace std;

//定义类
class Date
{
private:
    int year;
    int month;
    int day;
    //数据成员,默认为私有

public:
    Date():year(2000),month(1),day(1){}//不带参数的构造函数

    Date(int year,int month,int day)//带参数的构造函数
    {
        this->year=year;
        this->month=month;
        this->day=day;
    }

    /*这里可以缺省参数
    Date(int year=2000,int month=1,int day=1)//带参数的构造函数
    {
        this->year=year;
        this->month=month;
        this->day=day;
    }*/

    Date(const Date&t)  //拷贝构造函数,浅拷贝,系统默认会有
    {
        year=t.year;
        month=t.month;
        day=t.day;
    }
    /*  
        Date data1=(2004,6,5)
        Data data2;
        data2=data1;(错误)
        Data data2=data1;(正确)
        等号需要运算符重载才可以使用。
    */

    ~Date() //析构函数
    {
        cout<<"Distract"<<endl;     //当调用析构函数的时候会输出distract。
    }
    void print()    //普通成员函数
    {
        cout<<year<<"\t"<<month<<"\t"<<day<<endl;
    }

};

int main()
{
    //普通对象
    Date d1(2004,6,5);
    Date d2;

    //对象数组
    Date arr[5];
    arr[0].print();

    //对象指针
    Date *p;
    p=&d1;
    p->print();
    (*p).print();

    //引用
    Date &w=d1;
    w.print();

    //动态创建对象
    Date *q=new Date(2008,8,8);
    q->print();
    delete q;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值