日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++运算符重载-mfc演示

發布時間:2025/4/14 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++运算符重载-mfc演示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新建一個單文檔工程;為工程添加一個Box類;下拉選擇 Generic Class,一般類,非MFC類;
?

輸入Box.h的代碼;刪掉默認生成的cpp文件中的構造和析構函數;

// Box.h: interface for the Box class. // //#if !defined(AFX_BOX_H__AC40AC29_0557_4574_977E_F2AA04FD26FF__INCLUDED_) #define AFX_BOX_H__AC40AC29_0557_4574_977E_F2AA04FD26FF__INCLUDED_#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000class Box {public:double getVolume(void){return length * breadth * height;}void setLength( double len ){length = len;}void setBreadth( double bre ){breadth = bre;}void setHeight( double hei ){height = hei;}// 重載 + 運算符,用于把兩個 Box 對象相加Box operator+(const Box& b){Box box;box.length = this->length + b.length;box.breadth = this->breadth + b.breadth;box.height = this->height + b.height;return box;}private:double length; // 長度double breadth; // 寬度double height; // 高度 };#endif // !defined(AFX_BOX_H__AC40AC29_0557_4574_977E_F2AA04FD26FF__INCLUDED_)

每個box有長、寬、高;由于重載,使得2個box可以直接相加;

在視類cpp文件頭部包含 Box.h;?

OnDraw函數代碼;

void COpovView::OnDraw(CDC* pDC) {COpovDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;Box Box1; // 聲明 Box1,類型為 BoxBox Box2; // 聲明 Box2,類型為 BoxBox Box3; // 聲明 Box3,類型為 Boxdouble volume = 0.0; // 把體積存儲在該變量中Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0);Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0);// Box1 的體積volume = Box1.getVolume();str1.Format("Volume of Box1 : %f",volume);pDC->TextOut(20,20,str1);// Box2 的體積volume = Box2.getVolume();str1.Format("Volume of Box2 : %f",volume);pDC->TextOut(20,50,str1);// 把兩個對象相加,得到 Box3Box3 = Box1 + Box2;// Box3 的體積volume = Box3.getVolume();str1.Format("Volume of Box3 : %f",volume);pDC->TextOut(20,80,str1); }

輸出如下;

MFC的CRect類重載了以下運算符,可以直接用來操作rect對象;

CRect運算符

  operator LPCRECT 將一個CRect轉換為一個LPCRECT
  operator LPRECT 將一個CRect轉換為一個LPRECT
  operator = 將一個矩形的尺寸拷貝到CRect
  operator == 確定CRect是否與一個矩形相等
  operator != 確定CRect是否不等于另一個矩形
  operator += 使CRect增加指定的偏移,或使CRect放大
  operator -= 從CRect中減去指定的偏移,或縮小CRect
  operator &= 設置CRect等于CRect和某個矩形的交
  operator |= 設置CRect等于CRect和某個矩形的并
  operator + 增加給定偏移量到CRect,并返回得到的CRect對象
  operator - 從CRect中減去給定偏移量,并返回得到的CRect對象
  operator & 創建CRect與某個矩形的交,并返回得到的CRect對象
  operator | 創建CRect與某個矩形的并,并返回得到的CRect對象

總結

以上是生活随笔為你收集整理的C++运算符重载-mfc演示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。