c++的內建資料型別和標準庫類之間的型別是符合型別,如:指標和陣列型別。c++對陣列提供了內建支援,但是僅限於對資料則單個元素的讀寫,對整個陣列的操作則不支援(如用乙個陣列賦值給另乙個陣列)
陣列名是乙個指標,但是常量指標
2.1 為什麼內建陣列型別不支援陣列之間的賦值。支援這種操作要什麼資訊?
答:陣列名是乙個常量指標,可以將陣列賦值給乙個指標變數,但是常量之間不能賦值。支援賦值操作至少在編譯器運算元組的時候直到陣列的長度。
2.2 你認為作為一等公民的陣列應該支援什麼操作?
陣列初始化
陣列比較
陣列賦值
陣列大小查詢
陣列索引範圍檢驗等
靜態與動態記憶體分配的兩個主要區別:
1、 靜態物件是有名字的變數,可以直接對其操作。動態物件是沒有名字的變數,只能通過指標簡介對其進行操作
2、 靜態物件的分配與釋放由編譯器自動處理,不需要程式設計師處理任何事情。動態物件的分配與釋放,必須由程式設計師顯示的給出,有new和delete表示式完成,通常這兩個表示式要配對使用。
2.3
a) 靜態分配物件,物件名字為 ival
b)pi是乙個指標,其中儲存的是整形變數ival的位址
c) pi2是乙個指標,指向動態分配的乙個報存int型別資料且值為1024的記憶體塊
d) pi3是乙個指標,指向動態分配的乙個儲存1024個整形資料的起始位址
2.4while迴圈中的*pi就是10,因此迴圈變成10<10 迴圈體將一次都不執行。同時,如果迴圈體執行的話,pia[*pi]=pia[10],這也是乙個錯誤,不過因為while的條件限制,這個情況是不會發生的。
類的過載操作符,注意過載後要注意函式返回值要不要用引用,因為只有引用才可能用於左值。
2.5
//test.cpp : 定義控制台應用程式的入口點。
//#include
<
iostream
>
using
namespace
std;
class
matrix
class
date
... ;
2.6 第乙個需要,第二個不需要
2.8
成員函式是一種函式
建構函式是一種成員函式
飛機是一種交通工具
圓形是一種幾何圖形
正方形是一種矩形
2.9rotate():可以定義為虛函式
print(): 可以定義為虛函式
size(): 可以共享,所有類中
dateborrowed():可作為虛函式
rewind(): 獨自
borrower():獨自
is_late():獨自
is_on_loan():獨自
2.10
類對自己和別的類的關係也不能搞的太絕對,不應該對外界一視同仁,應該有個親密關係的,所以protected很必要
C primer學習筆記3
建構函式初始值列表 如果類的成員有const,引用,沒有提供預設建構函式的類型別。那麼我們必須通過建構函式為這些成員賦初始值。class testcase private int i const int ci int di 一般來說,建議直接使用建構函式初始化成員。一方面是初始化和賦值關乎底層效率問...
c Primer學習筆記2
while語句 while語句提供了迭代功能 從1到10求和 include int main std coutfor迴圈實現1到10求和 include int main std cout 未知數目的輸入 include int main std cout 類的簡介 一般將類的定義放在標頭檔案中,...
c primer 學習筆記 2
字串字面值可以分開書寫 const char aa aaa aaa 初始化 int a 0 int a int a 報錯,3.14不能放到int中 int a int a 0 申明和定義的區別 申明規定的變數的型別和名字,定義還申請記憶體,初始化 只申明 extren,但如果初始化了 就是 定義了 ...