C++基础语法

class Date
{
    private:
    int _year;
    int _month;
    int _day;
public:
    Date(int year,int month,int day)
    {
        this->_year = year;
        this->_month = month;
        this->_day = day;
    }
};
this指针
不可在实参和形参中显示使用this指针,可在函数体中显示使用
this指针存储在栈中
成员函数(包含构造函数,析构函数,拷贝构造函数,赋值重载函数)
构造函数
函数名与类名相同,无返回值,自动调用,可重载,若不写编辑器会自动生成一个(一般不使用)
默认构造函数指不传实参就可调用的构造函数
class Date
{
private:
    int _year;
    int _month;
    int _day;
public:
    Date(int year=1, int month=1, int day=1)
    {
        this->_year = year;
        this->_month = month;
        this->_day = day;
    }
};//全缺省的构造函数,使用次数较多
#include<iostream>
using namespace std;

typedef int STDataType;
class Stack
{
public:
    Stack(int n = 4)
    {
        _a = (STDataType*)malloc(sizeof(STDataType) * n);
        if (nullptr == _a)
        {
            perror("malloc申请空间失败");
            return;
        }
        _capacity = n;
        _top = 0;
    }
private:
    STDataType* _a;
    size_t _capacity;
    size_t _top;
};

// 两个Stack实现队列
class MyQueue
{
public:
private:
    Stack pushst;会调用Stack的构造函数
    Stack popst;
    //int size;
};

//int main()
//{
//    MyQueue mq;
//    //Stack st1;
//    //Stack st2;
//
//    return 0;
//}
构造函数与析构函数的调用顺序是相反的,析构函数后面创建的先调用
大多数情况下需自己写,少数如MyQueue且Stack有默认构造时,可自动调用
析构函数(进行对象中的资源清理释放工作)
在类名前加上字符~,无参无返回值,对象生命周期结束后自动调用
    // ...

    ~Stack()
    {
        free(_a);
        _a = nullptr;
        _top = _capacity = 0;
    }
运算符重载
作为成员函数时,第一个运算对象默认传给隐式的this指针,
 所以运算符重载为成员函数时的参数比运算对象少一个
class Student
{
    int id;
    string name;
public:
    Student(int a,string b):id(a),name(b){}
    int  operator==(const Student& s)
    {
        if (this->id == s.id && this->name == s.name)
            return 1;
        else
            return 0;
    }
};
int  operator==(const Student& s1, const Student& s2)
{
    .......
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值