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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ const成员Demo - Win32 版本

發(fā)布時(shí)間:2025/4/14 c/c++ 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ const成员Demo - Win32 版本 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在類中,如果不希望某些數(shù)據(jù)被修改,可以使用const關(guān)鍵字加以限定。const 可以用來修飾成員變量和成員函數(shù)。

const成員變量
const 成員變量的用法和普通 const 變量的用法相似,只需要在聲明時(shí)加上 const 關(guān)鍵字。初始化 const 成員變量只有一種方法,就是通過構(gòu)造函數(shù)的初始化列表。

const成員函數(shù)(常成員函數(shù))
const 成員函數(shù)可以使用類中的所有成員變量,但是不能修改它們的值,這種措施主要還是為了保護(hù)數(shù)據(jù)而設(shè)置的。const 成員函數(shù)也稱為常成員函數(shù)。

通常將 get 函數(shù)設(shè)置為常成員函數(shù)。讀取成員變量的函數(shù)的名字通常以get開頭,后跟成員變量的名字,所以通常將它們稱為 get 函數(shù)。
常成員函數(shù)需要在聲明和定義的時(shí)候在函數(shù)頭部的結(jié)尾加上 const 關(guān)鍵字。

#include <windows.h> #include "resource.h" #include <string>using namespace std;LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);HINSTANCE hInst; TCHAR szClassName[] = TEXT("constmemberDemo"); char szBuffer[100]; class Student{ public:Student(char *name, int age, int score);void show(HDC hdc);//聲明常成員函數(shù)char *getname() const;int getage() const;int getscore() const; private:char *m_name;int m_age;int m_score; }; Student::Student(char *name, int age, int score): m_name(name), m_age(age), m_score(score){ } void Student::show(HDC hdc){wsprintf(szBuffer, "%s年齡是%d,成績是%d。",m_name,m_age,m_score);TextOut(hdc,10,30,szBuffer,lstrlen(szBuffer)); } //定義常成員函數(shù) char * Student::getname() const{return m_name; } int Student::getage() const{return m_age; } int Student::getscore() const{return m_score; }int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil) {HWND hwnd;MSG messages;WNDCLASSEX wincl;hInst = hThisInstance;wincl.hInstance = hThisInstance;wincl.lpszClassName = szClassName;wincl.lpfnWndProc = WindowProcedure;wincl.style = CS_DBLCLKS;wincl.cbSize = sizeof (WNDCLASSEX);wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);wincl.hCursor = LoadCursor (NULL, IDC_ARROW);wincl.lpszMenuName = MAKEINTRESOURCE (IDC_CONSTMEMBERDEMO);wincl.cbClsExtra = 0;wincl.cbWndExtra = 0;wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);if (!RegisterClassEx (&wincl))return 0;hwnd = CreateWindowEx (0,szClassName,TEXT("C++ const成員 Demo"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,300,200,HWND_DESKTOP,NULL,hThisInstance,NULL);ShowWindow (hwnd, nFunsterStil);while (GetMessage (&messages, NULL, 0, 0)){TranslateMessage(&messages);DispatchMessage(&messages);}return messages.wParam; }LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {PAINTSTRUCT ps;HDC hdc;RECT rt; char szBuffer[100]; Student stu("小明同學(xué)", 15, 90);Student *pstu = new Student("小李同學(xué)", 16, 80);switch (message){case WM_COMMAND:switch (LOWORD(wParam)){case IDM_constmember: hdc=GetDC(hwnd);stu.show(hdc);wsprintf(szBuffer, "%s",pstu->getname());TextOut(hdc,10,80,szBuffer,lstrlen(szBuffer));wsprintf(szBuffer, "年齡是%d",pstu->getage());TextOut(hdc,80,80,szBuffer,lstrlen(szBuffer));wsprintf(szBuffer, ",成績是%d",pstu->getscore());TextOut(hdc,160,80,szBuffer,lstrlen(szBuffer));break;case IDM_ABOUT:MessageBox (hwnd, TEXT ("constmemberDemo v1.0\nCopyright (C) 2020\n by bo"),TEXT ("constmemberDemo"), MB_OK | MB_ICONINFORMATION);break;case IDM_EXIT:DestroyWindow(hwnd);break;default:return DefWindowProc(hwnd, message, wParam, lParam); }break;case WM_CREATE:break;case WM_PAINT:hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rt); EndPaint(hwnd, &ps);break;case WM_DESTROY:PostQuitMessage (0);break;default:return DefWindowProc (hwnd, message, wParam, lParam);}return 0; }

getname()、getage()、getscore() 三個(gè)函數(shù)的功能都很簡單,僅僅是為了獲取成員變量的值,沒有任何修改成員變量的企圖,加了 const 限制,這是一種保險(xiǎn)的做法,同時(shí)也使得語義更加明顯。

必須在成員函數(shù)的聲明和定義處同時(shí)加上 const 關(guān)鍵字。如果只在一個(gè)地方加 const 會(huì)導(dǎo)致聲明和定義處的函數(shù)原型沖突。

const 的位置:
函數(shù)開頭的 const 用來修飾函數(shù)的返回值,表示返回值是 const 類型,也就是不能被修改,例如const char * getname()。
函數(shù)頭部的結(jié)尾加上 const 表示常成員函數(shù),這種函數(shù)只能讀取成員變量的值,而不能修改成員變量的值,例如char * getname() const。

工程;

資源和頭文件;

#include "resource.h" #include <windows.h>/ // // Menu //IDC_CONSTMEMBERDEMO MENU BEGINPOPUP "&File"BEGINMENUITEM "C++ const成員 Demo", IDM_constmemberMENUITEM "E&xit", IDM_EXITENDPOPUP "&Help"BEGINMENUITEM "&About ...", IDM_ABOUTEND END #define IDM_EXIT 10001 #define IDM_ABOUT 10002#define IDC_CONSTMEMBERDEMO 10101 #define IDD_ABOUTBOX 10102 #define IDM_constmember 40001

?

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的C++ const成员Demo - Win32 版本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 嫩草国产在线 | 日韩国产欧美一区二区三区 | 国产一级二级三级视频 | 中文免费av | 91ts人妖另类精品系列 | 成人免费毛片网 | 91黄色免费网站 | 爱的色放韩国电影 | 国产懂色av| 最新av网站在线观看 | 午夜成人影片 | 另类男人与善交video | 中文字幕一区二区三区四区免费看 | 欧美一区亚洲二区 | 一区二区小视频 | 日韩专区一区 | 少妇太爽了 | 国产日韩欧美中文字幕 | 欧美国产日韩视频 | 亚洲高清视频一区 | 韩国av在线免费观看 | 青娱乐国产盛宴 | 全部孕妇毛片 | 亲切的金子餐桌片段的金子 | 国产网站免费 | 无码人妻精品一区二区蜜桃视频 | 国产精品影院在线观看 | 丰满人妻一区二区三区在线 | 日本一二三视频 | 少妇被爽到高潮动态图 | 亚洲免费观看在线 | 丰满少妇大力进入 | avtt中文字幕 | 国产激情自拍视频 | 欧美一二三 | 狠狠干狠狠撸 | 亚洲涩色 | 182在线视频| 亚洲视频 中文字幕 | 自拍偷拍视频网站 | 这里只有精品在线播放 | 国产精品久久久久久一区二区三区 | 蜜桃视频免费网站 | 国产成人精品片 | 一区二区精品免费 | 欧美在线一区二区 | 上海毛片 | 欧美综合成人 | 久久国产麻豆 | 国产在线观看精品 | 91九色丨porny丨肉丝 | 国产18av | 国产一区不卡 | 国产精品无码无卡无需播放器 | 农村脱精光一级 | 97人人插| 国产不卡av在线播放 | 欧美国产一区二区在线观看 | 国产区小视频 | 亚洲视频在线观看一区二区 | 蜜桃av久久久亚洲精品 | 又粗又猛又爽又黄少妇视频网站 | 日韩乱码人妻无码系列中文字幕 | 丰满人妻一区二区三区四区 | av天天干| 久久精彩 | 欧美特一级片 | 日本一二三区视频在线 | 国产调教一区 | 日本乱偷人妻中文字幕在线 | 久久久免费观看视频 | 免费av网站观看 | 久久久久久久综合色一本 | 亚洲视频在线观看免费视频 | 6680新视觉电影免费观看 | 自拍偷拍视频在线 | 午夜精品久久久久久久久久久久久蜜桃 | 久久久天堂国产精品女人 | 国产3p在线播放 | 69日本xxxxxxxx96 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧洲金发美女大战黑人 | 中国女人内谢69xxxxⅹ视频 | 亚洲黄色成人 | 婷婷午夜精品久久久久久性色av | 国产又粗又长又黄视频 | 欧美亚洲日本一区 | 亚洲精品久久久久久久久久久 | av大帝| 午夜看看 | 最新三级网站 | 美女福利片 | av免费在线网站 | 91久久国产综合久久 | 国产精品久久久久久亚洲 | 激情九月婷婷 | 波多野结衣乳巨码无在线观看 | 国产午夜精品一区二区三区四区 | 国产精品视频自拍 |