#include
using
namespace std;
//內聯函式,交換兩個數的值
//建議直接定義,不用先在開頭宣告再在後面定義
inline
void
swap
(int
*a,int
*b)int
main()
int
*p =
newint
;//分配1個int型的記憶體空間
delete p;
//釋放記憶體
int*p =
newint[10
];//分配10個int型的記憶體空間
delete
p;
student stu;
student *pstu =
&stu;
student *pstu =
new student;
pstu -
> name =
"小明"
;pstu -
> age =15;
pstu -
> score =
92.5f
;pstu -
>
say(
);
student::
student
(char
*name,
int age,
float score)
:m_name
(name)
,m_age
(age)
,m_score
(score)
初始化列表可以用於全部成員變數,也可以只用於部分成員變數。下面的示例只對 m_name 使用初始化列表,其他成員變數還是一一賦值:
student::
student
(char
*name,
int age,
float score)
:m_name
(name)
執行時機
#include
#include
using
namespace std;
class
demo
;demo::
demo
(string s)
:m_s
(s)demo::
~demo()
void
func()
//全域性物件
demo obj2
("2");
intmain()
執行結果
1
main
32
棧:在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令集中,效率很高,但是分配的記憶體容量有限。
堆:就是那些由new
分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new
就要對應乙個delete
。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。
自由儲存區:就是那些由malloc
等分配的記憶體塊,他和堆是十分相似的,不過它是用free
來結束自己的生命的。
全域性/靜態儲存區:全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同占用同一塊記憶體區。
常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。
一些知識點
字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...
一些知識點
1.vector是在堆上還是棧上?在堆上.2.我們發現指標有一些 似是而非 的特徵 1 指標消亡了,並不表示它所指的記憶體會被自動釋放。比如函式中的指標是區域性變數,如果它指向了堆上,而自己出了函式後消亡了,但它所指向的記憶體還是存在的,導致了記憶體洩漏.2 記憶體被釋放了,並不表示指標會消亡或者成...
一些知識點
1 sln 解決方案檔案 csproj 專案檔案 cs 原始檔 解決方案包含多個專案,每個專案都是乙個程式。config 配置檔案 3 const int a 1 const 定義乙個量為常量,運算中用到當常量使用,不可以再重新賦值。4 型別轉換。1 隱式轉換。從值型別轉換成引用型別。從引用型別轉換...