C++冗雜易忘基礎知識整合

<1>、malloc是函數,c語言提供的庫函數,包含在頭文件<stdlib>一般在c中使用,對應的是free,不能用delete釋放
C++中用new,new和delete是C++提供的內建操作符,不是函數,不需要包含頭文件
int *p=new int;   或者  int *p=new int(10);   它在分配內存時可以同時進行賦值的
*p=10;  //賦值
delete p;  new 用完後必須用delete刪除,不能用free釋放


int *p=new int[10],連續分配10個int,就如在堆裏做了一個數組 ,連續的10個int   (用new來創建數組)
for(int i=0;i<10;i++){
p[i]=i;
}

delete [ ]p;//一個要加一個括號,告訴C++刪除的是一個數組


如果想要分配的不是一個基礎類型(int 等。。),如類等,只能用new來分配內存



<2>、C++支持三種頭文件,1.傳統的C頭文件,如<stdio.h>

2.也支持<stdio.hpp>
3.<stdio>


<3>、20140807--volatile關鍵字  C++不會幫忙自行優化程序



<4>、自己定義一個命名空間:

namespace zhujy{


void func(int i){

cout<<"zhujy func"<<endl;
}
}


namespace itcast{


void func( int i){
cout<<"itcast func"<<endl;
}
}


using namespace itcast;    //使用命名空間
func(10);


無名命名空間(很少用):
namespace {  //函數只能在這個空間內用了


void func(int i){
cout<<"zhujy func"<<endl;
}
}



<5>、如果一個類成員變量和一個全局變量重名,那麼在類成員函數當中默認訪問的是類的成員變量.
在類的內部訪問全局標識,關鍵字::
如   ::a, 則這個a是全局變量a,而不是類成員a


<6>、初始化成員列表只能在構造函數使用
***const成員必須用初始化成員列表賦值 ,因爲在類裏是不能直接賦值的,類不佔內存空間
***引用數據成員必須用初始化成員列表賦值



<7>、平常的實例對象,都是在棧裏構造對象的。在堆裏構造對象,用new。
man *p=new man; //調用沒有對象的構造函數,在堆裏面實例化一個對象(爲nam類分配內存,就是實例化??)
man *p=new man("hello",100); //調用有參數的構造函數
delete p;  //釋放內存空間,會自動調用析構函數(malloc不會自動調用析構函數)


<8>、(20140807--4--46:00)拷貝構造函數:指向自己的引用
man::man(const man &it)



<9>、explicit man( const char *s,int i)

明確的告訴系統就要用我自己寫的這個構造函數,不要自己造一個出來



發佈了34 篇原創文章 · 獲贊 68 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章