自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++程序基礎知識說明

開發(fā) 后端
C++程序是面向對象的語言,因此,它可以進行隨意添加一些自定義的東西,他的靈活性和便捷的特性,使許多程序員興奮不已。

也許大家對于C++程序還不是很了解,看完本文后對您一定會大有幫助,下文除了學習C++程序的基本性質外還對C++程序的新特性進行全面研究,希望能給大家?guī)碛杏玫男畔ⅰ?/P>

  1. class  A  
  2.  
  3. {  
  4.  
  5. };  
  6.  
  7. main()  
  8.  
  9. {   
  10.  
  11. A  a;  
  12.  
  13.   cout<<sizeof(a)<<endl;  
  14.  

C++程序的知識很多,有四庫全書《C++程序設計》,《C Primer》,這本文章只想談談我個人所看到的用到的知識。加上自己的理解。很多東西可能沒有系統(tǒng)化,而且,知識也是想到那寫到那。

首先談談 類的對象的大小,

  1.  class  A  
  2.  
  3. {  
  4.  
  5. };  
  6.  
  7. main()  
  8.  
  9. {   
  10.  
  11. A  a;  
  12.  
  13.   cout<<sizeof(a)<<endl;  

 那么:

  1. class A  
  2.  
  3. {  
  4.  
  5.   char m;  
  6.  
  7. };  
  8.  
  9. main()  
  10.  
  11. {  
  12.  
  13. A  a;  
  14.  
  15. cout<<sizeof(a)<<endl;  
  16.  

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

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

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

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

比如,我定義一個C++程序結構:

  1. struct A  
  2. {  
  3.  char type;  
  4. int y;  
  5. };  
  6. char  buf[MAX];   
  7. A a;  
  8. memcpy(buf,&a,sizeof(a));  
  9.  

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

還有類似的問題,以后,再敘。類的數(shù)據(jù)的訪問權限數(shù)據(jù)有三種權限:public,private,protected。C++程序是面向對象的語言,因此,它的許多概念來源于現(xiàn)實生活。比如這個權限問題就可以這么解釋?;绢愊喈斢诟赣H,子類相當于孩子。

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

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

【編輯推薦】

  1. 簡介學習C++總結之談
  2. 對C++庫函數(shù)進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法
責任編輯:chenqingxiang 來源: 機械工業(yè)出版社
相關推薦

2010-01-19 14:45:35

C++語言

2010-09-15 17:07:12

UPS基礎知識術語

2009-08-13 12:50:45

C#基礎知識

2009-08-13 16:13:03

C#基礎知識

2009-08-27 16:37:06

C#基礎知識

2011-07-13 18:24:18

C++

2009-08-11 15:17:12

C#基礎知識

2009-08-13 15:40:28

C#基礎知識

2010-01-19 17:54:47

C++程序

2009-08-03 13:55:03

C#基礎知識

2010-01-12 10:40:22

C++程序員

2010-01-04 10:35:09

2009-08-19 17:13:15

C# 操作符基礎知識

2009-08-24 17:07:09

C# 泛型

2009-08-21 17:19:36

C#網(wǎng)絡編程入門

2010-01-12 17:55:03

C++程序

2010-01-18 17:31:54

C++編寫程序

2010-01-27 14:24:15

C++程序設計

2010-01-28 09:31:57

C++開源程序

2010-01-12 14:30:41

C++程序
點贊
收藏

51CTO技術棧公眾號