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

C++運算符重載實例代碼詳解(調試環(huán)境 Visual Studio 2019)

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

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

遇到很多運算符重載,為了方便我的學習,我把這些總結了一下
如有錯誤(包括之前的博文)請評論留言,謝謝!

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

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

//C++運算符重載實例.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;
 }
 /*************************************************************************************************/
 /*
 一元運算符重載:
 遞增運算符( ++ )和遞減運算符( -- )
 一元減運算符,即負號( - )
 邏輯非運算符( ! )
 */
 chongzai operator-()   //以負號( - )為例
 {
 i = -i;
 j = -j;
 k = -k;
 return chongzai(i, j, k);
 }
 /*************************************************************************************************/
 /*
 二元運算符重載:
 二元運算符需要兩個參數(shù)
 加運算符( + ),減運算符( - ),乘運算符( * )和除運算符( / )
 */
 chongzai operator+(const chongzai& n) //以加號( + )為例
 {
 chongzai A;
 A.i = this->i + n.i;
 A.j = this->j + n.j;
 A.k = this->k + n.k;
 return A;
 }
 /**********************************************************************************************/
 /*
 關系運算符重載:
 大于( > ),小于( < ),大于等于( >= ),小于等于( <= ),等于( = )等
 */
 bool operator<(const chongzai& n)  //以小于號( < )為例
 {
 if (i < n.i)
  return true;
 if (i >= n.i)
  return false;
 return false;
 }
 /**********************************************************************************************/
 /*
 輸入輸出運算符重載:
 流提取運算符 >> 和流插入運算符 <<
 使用友元函數(shù)無需設置對象,而且符合人們cout<<和cin>>的書寫習慣
 */
 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;
 }
 /*************************************************************************************************/
 /*
 ++和--運算符重載:
 包括前置和后置
 */
 chongzai operator++()   //以前置++為例
 {
 ++i;
 ++j;
 ++k;
 return chongzai(i, j, k);
 }
 chongzai operator++(int)   //后置++的特殊格式
 {
 i++;
 j++;
 k++;
 return chongzai(i, j, k);
 }
 /*************************************************************************************************/
 /*
 賦值運算符重載:
 賦值運算符( = ),比如拷貝構造函數(shù)
 */
 void operator=(const chongzai& A)  //以拷貝構造函數(shù)為例
 {
 i = A.i;
 j = A.j;
 k = A.k;
 }
 /*************************************************************************************************/
 /*
 函數(shù)調用運算符重載:
 函數(shù)調用運算符 () 可以被重載用于類的對象。
 當重載 () 時,您不是創(chuàng)造了一種新的調用函數(shù)的方式,
 相反地,這是創(chuàng)建一個可以傳遞任意數(shù)目參數(shù)的運算符函數(shù)。
 */
 chongzai operator()(int a, int b, int c)
 {
 chongzai A;
 //利用()里的參數(shù)進行各種運算
 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;
 }
 }
 /*************************************************************************************************/
 /*
 下標運算符[]重載:
 */
 int& operator[](int n)
 {
 if (n >= 5)
 {
  cout << "索引超過最大值" << endl;
  return arr[0];
 }
 return arr[n];
 }
};

然后這是主程序

//C++運算符重載實例.cpp
#include "標頭.h"
#include <iostream>
using namespace std;

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

在輸入A3的時候,舉個例子,輸入1 2 3

輸出結果為

在這里插入圖片描述

總結

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

相關文章

  • C++中std::construct()與std::destroy()的使用

    C++中std::construct()與std::destroy()的使用

    std::construct()和std::destroy()是C++ STL中的函數(shù)模板,用于在已分配的存儲區(qū)域中構造或銷毀對象,本文主要介紹了C++中std::construct()與std::destroy()的使用,感興趣的可以了解一下
    2024-02-02
  • 使用C++獲取邏輯執(zhí)行毫秒數(shù)的方法

    使用C++獲取邏輯執(zhí)行毫秒數(shù)的方法

    這篇文章主要為大家詳細介紹了如何使用C++獲取邏輯執(zhí)行毫秒數(shù)的方法,文中借助c++11提供的steady_clock,實現(xiàn)了精確獲取邏輯執(zhí)行時間的方法,需要的可以參考下
    2024-02-02
  • VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境

    VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境

    我們在windows10中使用VS Code做C++程序開發(fā)過程中,需要安裝MSYS2和MinGW,下面這篇文章主要給大家介紹了關于VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境的相關資料,需要的朋友可以參考下
    2022-12-12
  • c++異常處理機制示例及詳細講解

    c++異常處理機制示例及詳細講解

    本篇文章主要是對c++異常處理機制示例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • C語言操作符超詳細講解下篇

    C語言操作符超詳細講解下篇

    C?語言提供了豐富的操作符,有:算術操作符,移位操作符,位操作符,賦值操作符,單目操作符,關系操作符,邏輯操作符,條件操作符等。本篇為第二篇,讓我們通讀本篇來詳細了解吧
    2022-04-04
  • Qt中QSettings配置文件的讀寫和應用場景詳解

    Qt中QSettings配置文件的讀寫和應用場景詳解

    這篇文章主要給大家介紹了關于Qt中QSettings配置文件的讀寫和應用場景的相關資料,QSettings能讀寫配置文件,當配置文件不存在時,可生成配置文件,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 用C實現(xiàn)添加和讀取配置文件函數(shù)

    用C實現(xiàn)添加和讀取配置文件函數(shù)

    本篇文章是對用C語言實現(xiàn)添加和讀取配置文件函數(shù)的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++調用C#的DLL實現(xiàn)方法

    C++調用C#的DLL實現(xiàn)方法

    這篇文章主要介紹了C++調用C#的DLL實現(xiàn)方法,很有實用價值,需要的朋友可以參考下
    2014-07-07
  • C++輕量級界面開發(fā)框架ImGUI介紹小結

    C++輕量級界面開發(fā)框架ImGUI介紹小結

    如果從事過C++?Windows客戶端開發(fā),大家對MFC、Qt、DuiLib等各種DirectUI應該有了解,本篇給大家介紹一個超級輕量級的C++開源跨平臺圖形界面框架ImGUI,感興趣的可以了解一下
    2021-11-11
  • c語言實現(xiàn)基數(shù)排序解析及代碼示例

    c語言實現(xiàn)基數(shù)排序解析及代碼示例

    這篇文章主要介紹了c語言實現(xiàn)基數(shù)排序解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論