cpp运算符重载

05-0 运算符重载

运算符重载在 c++中是一个非常重要的知识点。

上一次遇到重载二字是在函数之中。在函数中,不同的传入的数据类型或数据数量可以实现重载:简单来说就是使用相同的函数名称,但是传入不同的参数,所对应的函数内容也不同。

运算符重载的概念:对已有的运算符进行重新定义,赋予它另外的一种功能,用来适应不同的数据类型。

运算符重载的关键字:operator

对于内置的数据类型,编译器是知道如何进行运算的。举个例子:

int a = 10;
int b = 20;
int c = a + b;

在这里,a b c三个数据都是int类型,编译器自然知道这里面的+(加法)是如何进行的。

但是如果是自定义的数据类型,比如说结构体(struct)或者说是一个类(class)进行加法(+)减法(-)等等,则需要我们事先重载运算符(重新定义运算符)才可以实现。也是举个例子:

#include <iostream>
using namespace std;
class test
{
public:
    int m_A;
    int m_B;
};
int main()
{
    class test t1;
    t1.m_A = 10;
    t1.m_B = 20;
    class test t2;
    t2.m_A = 10;
    t2.m_B = 20;
    //class test t3 = t1 + t2;
    return 0;
}

在这里,注释掉的一行class test t3 = t1 + t2;是错误的,原因是没有进行运算符重载。对于编译器来说,test的数据类型是未知的。

当然,上面的例子中,只是举例了加法+。但是,不仅仅是加法,还有四则运算、左移动运算符(<<)、递增递减(++--)等等。这些都是运算符,但是到了结构体(struct)或者说是类(class)中,就都不可以使用了。所以,我们需要对运算符进行重载。

小声:结构体(struct)和类(class)事实上是一个东西,无非是结构体(struct)默认的权限是公共(public),但是类(class)的默认权限是私有(private)。

文章「cpp运算符重载」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/900」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇