溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++程序基礎(chǔ)知識(shí)有哪些

發(fā)布時(shí)間:2021-11-29 16:22:15 來源:億速云 閱讀:264 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“C++程序基礎(chǔ)知識(shí)有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++程序基礎(chǔ)知識(shí)有哪些”吧!

class  A   {   };   main()   {    A  a;     cout<<sizeof(a)<<endl;   }

C++程序的知識(shí)很多,有四庫(kù)全書《C++程序設(shè)計(jì)》,《C Primer》,這本文章只想談?wù)勎覀€(gè)人所看到的用到的知識(shí)。加上自己的理解。很多東西可能沒有系統(tǒng)化,而且,知識(shí)也是想到那寫到那。

首先談?wù)?類的對(duì)象的大小,

 class  A   {   };   main()   {    A  a;     cout<<sizeof(a)<<endl;

那么:

class A   {     char m;   };   main()   {   A  a;   cout<<sizeof(a)<<endl;   }

會(huì)打印結(jié)果為多少啊。這個(gè)問題叫Alignment,有一次,我就遇到這樣郁悶的問題,我們的工程中代碼都是用數(shù)組傳送數(shù)據(jù),比如坐標(biāo) x,y,那么就這樣賦值

*(int *)&w[0]=x;   *(int *)&w[4]=y;

(或許大家很少用),這樣的代碼有一個(gè)缺點(diǎn),送數(shù)據(jù),取數(shù)據(jù)十分不方便,而且,由于有下標(biāo),因此,代碼不好利用循環(huán)結(jié)構(gòu)(還有不是四位的數(shù)據(jù)) 。只能一位一位的賦值,還有一個(gè)問題,就是,當(dāng)工程一個(gè)約定變了的時(shí)候,所有的代碼都要改動(dòng)。不好reuse。

因此,我希望借助結(jié)構(gòu)strcut,或者class來改造程序代碼,但是就遇到數(shù)據(jù)對(duì)齊問題。

比如,我定義一個(gè)C++程序結(jié)構(gòu):

struct A  {   char type;  int y;  };  char  buf[MAX];   A a;  memcpy(buf,&a,sizeof(a));

但是,卻發(fā)現(xiàn)buf[]的內(nèi)容有三個(gè)不是我需要的內(nèi)容。其實(shí),我看了一些資料,說這是為了字節(jié)對(duì)齊,CPU存取數(shù)據(jù)是按照四位存取,這樣,就不會(huì)取四位數(shù)據(jù),一位是char type,三位是y的數(shù)據(jù)。作為編程者對(duì)這個(gè)有可能就不熟悉。

還有類似的問題,以后,再敘。類的數(shù)據(jù)的訪問權(quán)限數(shù)據(jù)有三種權(quán)限:public,private,protected。C++程序是面向?qū)ο蟮恼Z言,因此,它的許多概念來源于現(xiàn)實(shí)生活。比如這個(gè)權(quán)限問題就可以這么解釋?;绢愊喈?dāng)于父親,子類相當(dāng)于孩子。

還有一個(gè)友元類,相當(dāng)于朋友。比如,對(duì)于父親有的東西(成員變量)是對(duì)任何人都共享的,大家都可以知道的,不是什么秘密。那么,用public來描述這樣的東西。如果,有的東西,是只有不是外人不能知道的。

也就是,兒子,好朋友都可以分享的秘密的話,那么,這樣的東西用protected描述。同樣,還有的東西,大人不想讓小孩知道,但是,卻對(duì)好朋友不保留,這樣的事情,在現(xiàn)實(shí)生活中也是有的,那么,這樣的用private描述。

到此,相信大家對(duì)“C++程序基礎(chǔ)知識(shí)有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI