遇到的問題

2021-10-10 13:05:11 字數 1039 閱讀 3677

這個文章用於記錄在學習和使用c++的時候遇到的一些問題,以及解決方法,記載了一些非常零散的知識點,沒有主題。

c++11中,有一種新的方法在用new運算子申請結構體內存的同時對其初始化。其格式為:

struct car;

car * p = new car;

但是如果結構體中包含了字元陣列(字串),就不能使用這種格式,例如:

struct car;

car c ; //合法,在宣告的時候可以用字串的形式對陣列進行初始化

car * p = new car ;//非法,無法用該引數列表構造出car,不能將字串轉換成字元陣列

car *c = new car, 23.4};//合法,用陣列的形式傳入引數,而不是字串形式

造成這一錯誤的原因是因為,在new呼叫car的建構函式時,不能將字串形式的引數轉換成字元陣列。

在類中定義的靜態變數屬於該類,並且就算沒有任何關於該類的物件,也能通過域解析符::來訪問類中的變數,但是前提是,類中的靜態變數已經被初始化。

在類中定義乙個靜態變數的時候,系統是不會為它分配記憶體的,只有等到初始化的時候才會進行分配。所以可以直接在類中定義的靜態變數的時候進行初始化,例如:

class test
但是這樣有乙個限制,就是在初始化這個靜態變數的時候只能使用乙個常量對其進行初始化,這樣的方式很不靈活。此時可以在類中定義靜態變數的時候不對其初始化,而在類外對其初始化,例如:

class test

int y = 19;

int test:x = y;

這樣就能用乙個變數對類內的靜態變數進行初始化,注意這裡是初始化,不是賦值,所以語句的一開頭有乙個int。如果沒有對其進行初始化,系統不會為其分配記憶體,也就不能賦值。

另外,對類中的靜態成員的初始化只能在函式外的全域性**域進行。

遇到的問題

1 若class cnmdevctrlprotocol virtual public cnetcomm則starttimer編譯通不過 2 activex在ie下載入多個,相當於多執行緒,所以這時候的activex不要使用全域性變數,當時如果編寫動態庫也不要使用全域性變數 3 btn灰顯或sleep...

遇到的問題

今天學習遇到了不少的問題,所以學習的進度有點慢。1 jcreator 2 tomcat 的問題。我將 tomcat 裝好了,我就記得在安裝時就提示我設定使用者名稱和密碼了。可是我在訪問 是總是進不去。點選tomcat mananger 時,彈出這個對話方塊。當我輸入使用者名稱和密碼後,還是跳出這個,...

遇到的問題

1 動態新增的元素,不能直接新增事件,需要動態繫結新增事件 document on click div.lunbo div.lunbonum span displaypic function settimeout picnumclick 2000 2 prop 和.attr 的區別 對於html元素...