您好,登錄后才能下訂單哦!
本篇內容主要講解“C++程序基礎知識有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++程序基礎知識有哪些”吧!
class A { }; main() { A a; cout<<sizeof(a)<<endl; }
C++程序的知識很多,有四庫全書《C++程序設計》,《C Primer》,這本文章只想談談我個人所看到的用到的知識。加上自己的理解。很多東西可能沒有系統化,而且,知識也是想到那寫到那。
首先談談 類的對象的大小,
class A { }; main() { A a; cout<<sizeof(a)<<endl;
那么:
class A { char m; }; main() { A a; cout<<sizeof(a)<<endl; }
會打印結果為多少啊。這個問題叫Alignment,有一次,我就遇到這樣郁悶的問題,我們的工程中代碼都是用數組傳送數據,比如坐標 x,y,那么就這樣賦值
*(int *)&w[0]=x; *(int *)&w[4]=y;
(或許大家很少用),這樣的代碼有一個缺點,送數據,取數據十分不方便,而且,由于有下標,因此,代碼不好利用循環結構(還有不是四位的數據) 。只能一位一位的賦值,還有一個問題,就是,當工程一個約定變了的時候,所有的代碼都要改動。不好reuse。
因此,我希望借助結構strcut,或者class來改造程序代碼,但是就遇到數據對齊問題。
比如,我定義一個C++程序結構:
struct A { char type; int y; }; char buf[MAX]; A a; memcpy(buf,&a,sizeof(a));
但是,卻發現buf[]的內容有三個不是我需要的內容。其實,我看了一些資料,說這是為了字節對齊,CPU存取數據是按照四位存取,這樣,就不會取四位數據,一位是char type,三位是y的數據。作為編程者對這個有可能就不熟悉。
還有類似的問題,以后,再敘。類的數據的訪問權限數據有三種權限:public,private,protected。C++程序是面向對象的語言,因此,它的許多概念來源于現實生活。比如這個權限問題就可以這么解釋。基本類相當于父親,子類相當于孩子。
還有一個友元類,相當于朋友。比如,對于父親有的東西(成員變量)是對任何人都共享的,大家都可以知道的,不是什么秘密。那么,用public來描述這樣的東西。如果,有的東西,是只有不是外人不能知道的。
也就是,兒子,好朋友都可以分享的秘密的話,那么,這樣的東西用protected描述。同樣,還有的東西,大人不想讓小孩知道,但是,卻對好朋友不保留,這樣的事情,在現實生活中也是有的,那么,這樣的用private描述。
到此,相信大家對“C++程序基礎知識有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。