欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++運(yùn)算符重載實(shí)例代碼詳解(調(diào)試環(huán)境 Visual Studio 2019)

 更新時(shí)間:2020年03月06日 11:54:23   作者:Pineapple_C++  
這篇文章主要介紹了C++運(yùn)算符重載實(shí)例(調(diào)試環(huán)境 Visual Studio 2019),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

最近看了菜鳥教程里的C++教程

遇到很多運(yùn)算符重載,為了方便我的學(xué)習(xí),我把這些總結(jié)了一下
如有錯(cuò)誤(包括之前的博文)請(qǐng)?jiān)u論留言,謝謝!

由于代碼里注釋的很清楚,我就不做過多的解釋了。

下面是這次總結(jié)的頭文件,用來放置一些類和方法。

//C++運(yùn)算符重載實(shí)例.h
#pragma once
#include <iostream>
using namespace std;
class chongzai
{
private:
 int i, j, k;
public:
 chongzai()
 {
 i = 0;
 j = 0;
 k = 0;
 }
 chongzai(int a, int b, int c)
 {
 i = a;
 j = b;
 k = c;
 }
 //以下分別為A1,A2,A3的顯示函數(shù)
 void display1()
 {
 cout << "A1:" << endl;
 cout << "i=" << i << endl;
 cout << "j=" << j << endl;
 cout << "k=" << k << endl;
 cout << "------------------" << endl;
 }
 void display2()
 {
 cout << "A2:" << endl;
 cout << "i=" << i << endl;
 cout << "j=" << j << endl;
 cout << "k=" << k << endl;
 cout << "------------------" << endl;
 }
 void display3()
 {
 cout << "A3:" << endl;
 cout << "i=" << i << endl;
 cout << "j=" << j << endl;
 cout << "k=" << k << endl;
 cout << "------------------" << endl;
 }
 /*************************************************************************************************/
 /*
 一元運(yùn)算符重載:
 遞增運(yùn)算符( ++ )和遞減運(yùn)算符( -- )
 一元減運(yùn)算符,即負(fù)號(hào)( - )
 邏輯非運(yùn)算符( ! )
 */
 chongzai operator-()   //以負(fù)號(hào)( - )為例
 {
 i = -i;
 j = -j;
 k = -k;
 return chongzai(i, j, k);
 }
 /*************************************************************************************************/
 /*
 二元運(yùn)算符重載:
 二元運(yùn)算符需要兩個(gè)參數(shù)
 加運(yùn)算符( + ),減運(yùn)算符( - ),乘運(yùn)算符( * )和除運(yùn)算符( / )
 */
 chongzai operator+(const chongzai& n) //以加號(hào)( + )為例
 {
 chongzai A;
 A.i = this->i + n.i;
 A.j = this->j + n.j;
 A.k = this->k + n.k;
 return A;
 }
 /**********************************************************************************************/
 /*
 關(guān)系運(yùn)算符重載:
 大于( > ),小于( < ),大于等于( >= ),小于等于( <= ),等于( = )等
 */
 bool operator<(const chongzai& n)  //以小于號(hào)( < )為例
 {
 if (i < n.i)
  return true;
 if (i >= n.i)
  return false;
 return false;
 }
 /**********************************************************************************************/
 /*
 輸入輸出運(yùn)算符重載:
 流提取運(yùn)算符 >> 和流插入運(yùn)算符 <<
 使用友元函數(shù)無需設(shè)置對(duì)象,而且符合人們cout<<和cin>>的書寫習(xí)慣
 */
 friend ostream& operator<<(ostream& output, const chongzai& A)
 {
 output << "i:" << A.i << endl;
 output << "j:" << A.j << endl;
 output << "k:" << A.k << endl;
 output << "------------------" << endl;
 return output;
 }
 friend istream& operator>>(istream& input, chongzai& A)
 {
 input >> A.i >> A.j >> A.k;
 return input;
 }
 /*************************************************************************************************/
 /*
 ++和--運(yùn)算符重載:
 包括前置和后置
 */
 chongzai operator++()   //以前置++為例
 {
 ++i;
 ++j;
 ++k;
 return chongzai(i, j, k);
 }
 chongzai operator++(int)   //后置++的特殊格式
 {
 i++;
 j++;
 k++;
 return chongzai(i, j, k);
 }
 /*************************************************************************************************/
 /*
 賦值運(yùn)算符重載:
 賦值運(yùn)算符( = ),比如拷貝構(gòu)造函數(shù)
 */
 void operator=(const chongzai& A)  //以拷貝構(gòu)造函數(shù)為例
 {
 i = A.i;
 j = A.j;
 k = A.k;
 }
 /*************************************************************************************************/
 /*
 函數(shù)調(diào)用運(yùn)算符重載:
 函數(shù)調(diào)用運(yùn)算符 () 可以被重載用于類的對(duì)象。
 當(dāng)重載 () 時(shí),您不是創(chuàng)造了一種新的調(diào)用函數(shù)的方式,
 相反地,這是創(chuàng)建一個(gè)可以傳遞任意數(shù)目參數(shù)的運(yùn)算符函數(shù)。
 */
 chongzai operator()(int a, int b, int c)
 {
 chongzai A;
 //利用()里的參數(shù)進(jìn)行各種運(yùn)算
 A.i = a + b;
 A.j = b + c;
 A.k = a + c;
 return A;
 }
};
class chongzai2
{
private:
 int arr[5];
public:
 int n;
 chongzai2()
 {
 for (n = 0; n < 5; n++)
 {
  arr[n] = n;
 }
 }
 /*************************************************************************************************/
 /*
 下標(biāo)運(yùn)算符[]重載:
 */
 int& operator[](int n)
 {
 if (n >= 5)
 {
  cout << "索引超過最大值" << endl;
  return arr[0];
 }
 return arr[n];
 }
};

然后這是主程序

//C++運(yùn)算符重載實(shí)例.cpp
#include "標(biāo)頭.h"
#include <iostream>
using namespace std;

int main()
{
 chongzai A1(10, 20, 30), A2(100, 200, 300), A3;
 -A1;     //一元運(yùn)算符重載
 A1.display1();
 A3 = A1 + A2;    //二元運(yùn)算符重載
 A3.display3();
 if (A1 < A2)    //關(guān)系運(yùn)算符重載
 cout << "D1<D2" << endl << endl;
 else
 cout << "D1>=D2" << endl << endl;
 cout << "請(qǐng)輸入A3的各項(xiàng)參數(shù):" << endl; //輸入輸出元算符重載
 cin >> A3;
 cout << "A3的各項(xiàng)參數(shù)為:" << endl;
 cout << A3;
 ++A1;     //前置++運(yùn)算符重載
 A1.display1();
 A1++;     //后置++運(yùn)算符重載
 A1.display1();
 A1 = A2;     //賦值運(yùn)算符重載
 A1.display1();
 A2 = A3(2, 4, 6);    //函數(shù)調(diào)用運(yùn)算符()重載
 A2.display2();
 chongzai2 B;
 cout << "B[4]的值為:" << B[4] << endl;
 cout << "B[5]的值為:" << B[5] << endl; //下標(biāo)運(yùn)算符[]重載
 return 0;
}

在輸入A3的時(shí)候,舉個(gè)例子,輸入1 2 3

輸出結(jié)果為

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于C++運(yùn)算符重載實(shí)例(調(diào)試環(huán)境 Visual Studio 2019)的文章就介紹到這了,更多相關(guān)C++運(yùn)算符重載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實(shí)現(xiàn)小小圣誕樹源代碼

    C語言實(shí)現(xiàn)小小圣誕樹源代碼

    圣誕節(jié)當(dāng)然要有個(gè)圣誕樹了,今天給你們用C語言編寫一個(gè)雪夜圣誕樹,這篇文章主要給大家介紹了關(guān)于C語言實(shí)現(xiàn)小小圣誕樹的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之二叉查找樹

    C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之二叉查找樹

    這篇文章主要介紹了C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之二叉查找樹,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • C++實(shí)現(xiàn)圖書管理程序

    C++實(shí)現(xiàn)圖書管理程序

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)圖書管理程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言 Freertos的遞歸鎖詳解

    C語言 Freertos的遞歸鎖詳解

    這篇文章主要為大家詳細(xì)介紹了C語言的遞歸鎖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 淺談c/c++中使用指針需要注意的問題

    淺談c/c++中使用指針需要注意的問題

    下面小編就為大家?guī)硪黄獪\談c/c++中使用指針需要注意的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • C++之多態(tài)(內(nèi)容不錯(cuò))

    C++之多態(tài)(內(nèi)容不錯(cuò))

    什么是多態(tài)?顧名思義就是同一個(gè)事物在不同場(chǎng)景下的多種形態(tài),需要的朋友可以參考下
    2020-01-01
  • QT編寫地圖實(shí)現(xiàn)在線輪廓圖的示例代碼

    QT編寫地圖實(shí)現(xiàn)在線輪廓圖的示例代碼

    輪廓圖也叫行政區(qū)劃,這里的輪廓圖是指百度地圖的區(qū)域輪廓圖。本文將為大家介紹QT如何實(shí)現(xiàn)在線輪廓圖的編寫,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • 基于C++和MFC開發(fā)象棋程序

    基于C++和MFC開發(fā)象棋程序

    這篇文章主要為大家詳細(xì)介紹了基于C++和MFC開發(fā)象棋程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • C++ 深入淺出探索模板

    C++ 深入淺出探索模板

    人們需要編寫多個(gè)形式和功能都相似的函數(shù),因此有了函數(shù)模板來減少重復(fù)勞動(dòng);人們也需要編寫多個(gè)形式和功能都相似的類,于是 C++ 引人了類模板的概念,編譯器從類模板可以自動(dòng)生成多個(gè)類,避免了程序員的重復(fù)勞動(dòng)
    2022-04-04
  • C語言計(jì)算余數(shù)的圖文步驟

    C語言計(jì)算余數(shù)的圖文步驟

    在本篇文章里小編給大家整理了一篇關(guān)于C語言計(jì)算余數(shù)的圖文步驟內(nèi)容,有需要的朋友們可以參考下。
    2020-02-02

最新評(píng)論