C 為什麼標準C 規定臨時物件必須賦為常值引用

時間 2025-04-01 07:20:24

1樓:匿名使用者

你不賦值時取不了他的位址的。

怎麼給物件賦了值????(高手來)

2樓:網友

string類是乙個特殊的類,因為經常用到,為了使用方便,在宣告string類物件的時候,可以採用直接宣告並賦值的方式,也就是你提到的string s = 和string s = new string(""是一樣的效果。

3樓:網友

string s1 = new string("abc");

string s2 = new string("abc");

這兩個不是同乙個物件。s1!=s2 但是是truestring s1 = abc";

string s2 = abc";

這連個是同乙個物件,s1==s2 都是true.

如果有new就是開闢記憶體新建物件了,如果沒有就是在string池裡找了,如果找到了就用string池的這個物件,否則新建string物件並加入池,下次有這個物件的時候也是直接用這個,不去建立。所以在沒有new時候相同字串是同乙個物件,而new了就不是同一物件。這個主要是為了省記憶體,string是個常量,開闢兩個相同的記憶體空間存一樣的常量,有點浪費就可以用這個來省點空間了。

c#中,物件b=a,傳遞的是值還是引用啊?

4樓:網友

這裡傳遞的是引用。。。

就是你現在這樣就可以了。。。他們現在就是指著同一段記憶體呢。。。

驗證方法:public class a

a a=new a();

a b;b=a;

然後你看的值也是10。

5樓:安慕希

是引用型別。

如果你想讓。

a和b是兩個不同址 可以使用 clone()轉殖。

6樓:網友

這個是引用。

另外糾正下一樓的乙個錯誤 string 在c#中是特殊的引用型別 表現形式是值型別 但內部儲存是引用型別。

7樓:萇苗

c#裡除了內建型別,像int,string,其它都是引用。

c#在子視窗中定義了乙個變數,並賦了值。如何在父視窗中引用此變數的值

8樓:網友

呃~這麼看吧,其實c#視窗本身就可以當做是乙個類,你可以在子窗體裡申明乙個成員變數,然後在父視窗裡例項化乙個字視窗的物件,然後就可以用這個物件來獲取那個值了。

再要麼,你在父視窗裡申明乙個靜態變數,這樣你就到處用咯。。。

9樓:網友

把這個變數設定成屬性或靜態變數就可以啦。

怎麼static有時賦初值,有時保留呼叫後的值?

10樓:網友

f(int a)

這個f函式里面c是static區域性變數 也可以這麼理解:它一直活著 但你只能在f內看到它 而b是動態區域性變數函式呼叫結束它就死了 static區域性變數在c++中是規定只初始化一次 也就是你每次呼叫這個f函式它第一初始化為3以後都不再初始化 直接在3的基礎上++ 而b會每次都要重新初始化。

在main中呼叫f(a) 也就是f(2)return(a+b+c) 其中a永遠是2 b永遠是1

c第一次是4 第二次5 第三次是6 所以三次呼叫分別是7 8 9選a

int f()

main()

同理這個題目中 static i為靜態變數一直不死 而main中也有乙個i

但這個i是main裡的變數與f中的不一樣 main中的不是靜態 f中的是靜態的。

這裡呼叫f5次。

第一次 s=1 i=1 a=1

第二次 s=2 i=2 a=3

第三次 s=3 i=3 a=6

第四次 s=4 i=4 a=10

第五次 s=5 i=5 a=15

最後輸出a為15選d

11樓:何處淬吳鉤

static int i=0;有關鍵字static,則這個語句在該函式中只執行1次並保留i的值,下次呼叫該函式則對i在原值的基礎上進行操作,而並不執行i=0;

12樓:兜裡有兩塊糖

第一題:選a a+b+c 分別為2 + 1 + 3,2 + 1 + 4,2 + 1 + 5

第二題:選d s值為 1 , 2 ,3 ,4,5 相加。

c++中物件是值型別還是引用型別?

13樓:網友

c++沒有值型別還是引用型別的說法;

其實,c++的指標類似遊派於c#的引用型別。

c++的物件當然是值型別。

指標的話用new開闢,並將指標指向耐襲此物件。指標就跟c#的引用類似(不是相同昌磨兄)

c++從佇列裡取出乙個物件用來引用,但是該物件的引用為什麼不能修改原物件的值?

14樓:網友

;返回的是個值拷貝,你的引用是對這個臨時值拷貝的,所以原值不變。

j**a:變數上轉型啥意思?子類的物件引用賦給父類的物件,這個子類物件就變成父類了?

15樓:劉侶含

轉型就是型別轉換。子類物件怎麼會變成父類呢,不是那個意思。

16樓:霧裡看花的過客

就像如果有魚這個類,還有動物這個類,那麼我們可以說魚是動物這一型別,但說動物就是魚這一型別就不妥了。呵呵。

17樓:

轉型後就具有了那個物件的一切功能。

為什麼在C 中vector string物件不能直接輸出,需要自己遍歷,然後逐個輸出

一個原因是標準庫不知道怎樣才是最合適的輸出方式,比如每個元素間要不要用回車分隔,還是用逗號分隔,再說即使不能直接輸出,寫起來也很簡單,如果是c 11的話,寫成 for auto i text cout i 就可以了 真的需要cout text 這種寫法的話,自己過載一個 operator 函式也是很...

C 為什麼同類要建立多個物件,C 為什麼同一個類要建立多個物件

這麼說吧,人類是也是一種類,每個人都是一個人類的具體表現形式 每個人都有很多共同的屬性,但是也有 每個人的特性,如果上帝只造了一個 人,那他多沒意思,沒有其他人跟他 有社會聯絡,比如不能xxoo神馬的,所以說呢,你只建立一個物件,就沒 什麼意思咯。 你不需要為一個類建立一個物件也能呼叫類的函式,前提...

介紹一下C 建立物件和C建立物件有什麼不同分別舉例

預設的話,最顯著的差別在於 c 中 new 建立的物件是開發者自己管理,需要自己釋放記憶體c 中 new 建立的物件是虛擬機器管理的,有 gc 負責垃圾記憶體 c classa pa new classa delete pa 手動 記憶體c classa a new classa 虛擬機器管理,不需...