1樓:匿名使用者
補樓上所述,所謂「物件銷燬」,意思就是當以下兩種情況發生時,物件即將被銷燬,銷燬前的最後一刻呼叫解構函式:
對於分配在堆疊上的物件,如 cserial c,當離開其作用域(比如某函式裡建立的c物件,在函式姐返回前)發生物件銷燬。
對於分配在堆上的物件,如cserial* p=new cserial();當你呼叫delete p指令時,發生物件銷燬。
解構函式一般情況下不需要宣告。但是本著誰在堆上分配物件,誰負責銷燬的原則,如果一個類的全域性變數裡有指向一個分配在堆裡的物件,那麼在解構函式裡釋放他。比如:
class cserial
~cserial()};
2樓:匿名使用者
「~」這個符號所代表的函式為解構函式,
在c++的物件導向程式設計中,都會有一個以上的建構函式形如cserial();
和一個解構函式形如~cserial();
它的作用很簡單,就是在銷燬物件時,釋放物件的記憶體空間。
還有什麼不懂的,可以繼續問
c++中的各種符號是什麼意思?
3樓:非常可愛
c語言中六種位運算子:
&按位與
|按位或
^按位異或
~取反《左移
>>右移
擴充套件資料運算子的使用
判斷int型變數a是奇數還是偶數a&1=0偶數a&1=1奇數取int型變數a的第k位(k=0,1,2……sizeof(int)),即a>>k&1
將int型變數a的第k位清0,即a=a&~(1<將int型變數a的第k位置1,即a=a|(1
int型變數a迴圈右移k次,即a=a>>k|a<<16-k(設sizeof(int)=16)
4樓:w別y雲j間
1級優先順序 左結合
() 圓括號
下標運算子
-> 指向結構體成員運算子
. 結構體成員運算子
2級優先順序 右結合
! 邏輯非運算子
~ 按位取反運算子
++ 字首增量運算子
-- 字首增量運算子
+ 正號運算子
- 負號運算子
(型別) 型別轉換運算子
* 指標運算子
& 地址與運算子
sizeof 長度運算子
3級優先順序 左結合
* 乘法運算子
/ 除法運算子
% 取餘運算子
4級優先順序 左結合
+ 加法運算子
- 減法運算子
5級優先順序 左結合
> 右移運算子
6級優先順序 左結合
= 關係運算子
7級優先順序 左結合
== 等於運算子
!= 不等於運算子
8級優先順序 左結合
& 按位與運算子
9級優先順序 左結合
^ 按位異或運算子
10級優先順序 左結合
| 按位或運算子
11級優先順序 左結合
&& 邏輯與運算子
12級優先順序 左結合
|| 邏輯或運算子
13級優先順序 右結合
? : 條件運算子
14級優先順序 右結合
= += -= *= /= %= &= ^= |= = 全為賦值運算子
15級優先順序 左結合
, 逗號運算子
c++是在c語言的基礎上開發的一種通用程式語言,應用廣泛。c++支援多種程式設計正規化 --物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++14於2023年8月18日公佈。
其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類:類、封裝、過載等特性。
5樓:匿名使用者
使用轉義符
\n 換行(lf)
\r 回車(cr)
\t 水平製表(ht)
\v 垂直製表(vt)
\\ 反斜槓
\? 問號字元
\' 單引號字元
\" 雙引號字元
\0 空字元(null)
char ch;
scanf("%c",&ch);
if(ch == '\*')
printf("相等");
6樓:卯永芬次凰
c++中,iostream類過載了運算子》和<<>>用於cin物件,表示從標準輸入,輸入資料到變數中《用於cout物件,表示將變數資料,輸出到標準輸出中使用該運算子,要引用標頭檔案iostream,如:
#include
using namespace std;
int main()
{int a;
cin >> a ;
cout << a <
>運算子格式為:
istream
&operator>>(istream
&input,
type
&num)
;//istream
輸入流說明:從函式宣告格式中可以看出,>>運算子過載函式的返回值型別為相應的
"輸入流引用"
(istream
&),這表示cin
>>a運算成後的結果還是cin,即:先讀入一個資料到a中,然後,返回cin這個物件,這樣,就可以繼續操作cin物件完成後續的輸入操作,如:
cin>>a>>b ;相當於 (cin>>a) >> b ; //讀一個數到a中,然後,再讀一個數到b中過載《運算子同理:
ostream
&operator<<(ostream
&output,const
type
&num)
;//ostream輸出流
c++ 中 *&符號連用是什麼意思
7樓:
引用是c++引入的新語言特性,是c++常用的一個重要內容之一,正確、靈活地使用引用,可以使程式簡潔、高效。
引用簡介
引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。
引用的宣告方法:型別識別符號 &引用名=目標變數名;
【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名
說明:(1)&在此不是求地址運算,而是起標識作用。
(2)型別識別符號是指目標變數的型別。
(3)宣告引用時,必須同時對其進行初始化。
(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。
ra=1; 等價於 a=1;
(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。故:對引用求地址,就是對目標變數求地址。
&ra與&a相等。
(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。
引用應用
1、引用作為引數
引用的一個重要作用就是作為函式的引數。以前的c語言中函式引數傳遞是值傳遞,如果有大塊資料作為引數傳遞的時候,採用的方案往往是指標,因為這樣可以避免將整塊資料全部壓棧,可以提高程式的效率。但是現在(c++中)又增加了一種同樣有效率的選擇(在某些特殊情況下又是必須的選擇),就是引用。
【例2】:
此處函式的形參p1, p2都是引用
為在程式中呼叫該函式,則相應的主調函式的呼叫點處,直接以變數作為實參進行呼叫即可,而不需要實參變數有任何的特殊要求。如:對應上面定義的swap函式,相應的主調函式可寫為:
main( )
} (5)在另外的一些操作符中,卻千萬不能返回引用:+-*/ 四則運算子。它們不能返回引用,effective c++[1]的item23詳細的討論了這個問題。
主要原因是這四個操作符沒有side effect,因此,它們必須構造一個物件作為返回值,可選的方案包括:返回一個物件、返回一個區域性變數的引用,返回一個new分配的物件的引用、返回一個靜態物件引用。根據前面提到的引用作為返回值的三個規則,第2、3兩個方案都被否決了。
靜態物件的引用又因為((a+b) == (c+d))會永遠為true而導致錯誤。所以可選的只剩下返回一個物件了。
4、引用和多型
引用是除指標外另一個可以產生多型效果的手段。這意味著,一個基類的引用可以指向它的派生類例項。
【例7】:
class a;
class b:public a;
b b;
a &ref = b; // 用派生類物件初始化基類物件的引用
ref 只能用來訪問派生類物件中從基類繼承下來的成員,是基類引用指向派生類。如果a類中定義有虛擬函式,並且在b類中重寫了這個虛擬函式,就可以通過ref產生多型效果。
引用總結
(1)在引用的使用中,單純給某個變數取個別名是毫無意義的,引用的目的主要用於在函式引數傳遞中,解決大塊資料或物件的傳遞效率和空間不如意的問題。
(2)用引用傳遞函式的引數,能保證引數傳遞中不產生副本,提高傳遞的效率,且通過const的使用,保證了引用傳遞的安全性。
(3)引用與指標的區別是,指標通過某個指標變數指向一個物件後,對它所指向的變數間接操作。程式中使用指標,程式的可讀性差;而引用本身就是目標變數的別名,對引用的操作就是對目標變數的操作。
(4)使用引用的時機。流操作符<>、賦值操作符=的返回值、拷貝建構函式的引數、賦值操作符=的引數、其它情況都推薦使用引用。
8樓:馮凱在**
沒有這麼用的吧,能舉個例子嗎
9樓:匿名使用者
表示對定義一個指標變數的引用
c++中->符號是什麼意思
10樓:
直接上**
class c ;
int main
11樓:
成員運算子,p->a表示訪問p所指物件的成員a。
12樓:皇神創世
p->a
相當於(*p).a
13樓:匿名使用者
a->b表示 a,b連個節點,a的下一個節點是b,a的next指標指向b
14樓:從長順將錦
!=意思是「不等與」,感嘆號!在邏輯中表示「邏輯非」運算。
整個語句其實是一個迴圈,這個迴圈的意思是:
1.定義一個f,並讓f初始值等於7
2.當f不等於m的時候繼續此迴圈,每次迴圈的時候f自加1。
另外:++f就是先自加一,再參與運算。
希望能幫助到你。
15樓:焦靜恬家懷
貌似沒有第一個符號
吧第一個貌似是賦值符號'='和一個負號'-'吧第二個是表示相等
第三個是表示將該操作符左邊的變數減去操作符右邊的變數的值第四個是格式化輸入輸出中代表整數的
第五個表示變數n的地址
最後一個是「或」操作
c++中 ^是什麼
16樓:匿名使用者
^屬於特殊字元,表示脫字元號;在ansi c中,引入了三元字元,為某些鍵盤上沒有的字元提供輸入方法。此時可以用三元符號「??/」表示脫位字元 ^ 。
^也可以表示特殊的二元運算子——逐位邏輯運算子(用於對資料的位進行操作),它表示的含義是逐位非或,要求兩個整型運算元。從最小(即最右)的位開始,對運算元逐位操作;如果只有其中一個位為1,那麼結果為1;否則為0。
c中的引用符號的問題,請問C中的引用符號到底怎麼使用
這是引用的一個bai容易出du錯的地方,引用是一種複合型別zhi,呼叫上面函式的dao正確形式應內該為 xx bool變數名 呼叫容函式時,編譯器會這樣理解來傳值 bool b c bool變數名 你用常量的話,問題就來了,常量是不佔記憶體的,變數b c又怎麼和它共用一片空間呢?試試下面形式,boo...
C 中文法符號是什麼意思,C 中 是什麼符號?
就是語言中用到的符號 如 等等。編譯原理的,很難啊。c 中 是什麼符號?c 中 是按位異或運算子 用於對資料的位進行操作 它表示的含義是逐位非或,要求兩個整型運算元。從最小 即最右 的位開始,對運算元逐位操作 如果只有其中一個位為1,那麼結果為1 否則為0。例如 0000 0000 1011 111...
c 中優先順序和運算子先看哪個,c 中的運算子優先順序順序是什麼?
因為 只是來在這條語句結束後才 1,假設 源a 0,則a a 等同於0 0,當然是錯的了,但是現在a的值變為1 補充一點,c 不提倡在同一語句當中多次修改同一個變數的值,樓主知道怎麼回事就行了,有些跟編譯器有關 我來正確的回copy答吧.1.和bai 優先順序是相du同的,那麼就看結合順序了。2.和...