【C++】基础语法6--friend、operator

常函数--const修饰成员函数

  • 成员函数加const后成为常函数。const加在函数的最后
class number
{
    void myfun() const;//常函数
};

void number::myfun() const
{

}
  • 常函数内部不能修改成员属性,起到保护作用
  • 常函数内部不循序调用其他非常函数,避免属性被修改
  • 成员属性在声明的时候加关键字mutable后,在常函数依旧可以修改

常对象

  • 在定义对象时,加一个const修饰,就表示常对象
const number n1;//n1就是一个常对象
  • 常对象内部的所有属性都不能被修改。常对象只能调用常函数

友元--关键字friend

  • 全局函数做友元--通常被称为友元函数
  • 类做友元--通常被称为友元类
  • 类成员函数做友元--通常被称为友元成员函数

运算符重载--关键字operator

  • 意义:赋予运算符新的操作,使其能够自定义类型(对象)之间的运算符
  • 注意:内置数据类型的运算符不能被重载,内置数据类型(C++基本类型):int、char、float……
  • 形式
  1. 类内运算符重载:在类的内部实现,有对象调用,类似于类的成员方法
  2. 类外运算符重载:类似于一个全局函数,可以直接调用,不需要以对象来调用

算符运算符重载

  • 基本语法(类内运算符):返回值operator运算符号(参数1……);
class number
{
public:
    //返回值operator 运算符号(参数1……)
    void operator+(int n);
};
void number::operator+(int n)
{
    //实现代码    
}
int n=9;
number n1;
n1.operator+(n);//n1+n
  • 类外运算符:返回值operator运算符号(参数1……);
class number
{

};
void operator+(number n1,int n2)
{
    //实现代码
}
number n1;
int n2=12;
operator+(n1,n2);//n1+n2
  • 注意:由于单目运算符、双目运算符……所以对参数的个数是有要求的,例如:+的重载类外实现必须要两个参数,类内实现只需要一个(对象本身占一个参数)

封装一个简单的字符串,加入重载运算符的操作

class mystring
{
public:
    mystring()
    {
        size=50;
        str_p=NULL;
    }
    int strlen()
    {
    
    }
    int strcat()
    {

    }
private:
    char *str_p;
    int size;
};
mystring str1;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lindsey小姐月光加冕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值