溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++程序基礎知識有哪些

發布時間:2021-11-29 16:22:15 來源:億速云 閱讀:554 作者:iii 欄目:編程語言

本篇內容主要講解“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++程序是面向對象的語言,因此,它的許多概念來源于現實生活。比如這個權限問題就可以這么解釋?;绢愊喈斢诟赣H,子類相當于孩子。

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

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

到此,相信大家對“C++程序基礎知識有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女