c 賦值符號到底能不能直接將兩個物件賦值

時間 2021-09-04 02:39:24

1樓:匿名使用者

這個程式可以編譯通過啊,在 vs2008下正常編譯通過並執行,不知道你有什麼問題?

class a

a( const a& a )

public:

a& operator =( const a& a )

};void main()

通過上面的**,你就可以發現,當要根據一個現有變數建立新物件時,會呼叫拷貝建構函式。

只有當兩個物件已經被建立,在物件之間賦值時,才呼叫賦值操作符號。

在使用者沒有定義拷貝建構函式和賦值操作函式時,編譯器會自動生成這兩個函式。

因為編譯器預設的這兩個函式,是屬於直接記憶體拷貝的。

使用者之所以要定義這兩個函式,是因為使用者在這兩個操作裡,需要有一些特定的操作。比如:

1、物件有很多資料成員,而需要拷貝的成員只有很少有幾個,沒有必要全部拷貝。

2、物件內部有指標變數,需要動態建立記憶體,進而進行記憶體拷貝,這個屬於自定義操作。

3、使用者需要在這些函式裡做其它跟蹤操作。

2樓:

肯定能。物件導向的設計,物件就如同一個普通變數一樣可進行賦值操作。請看舉例**:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include

#include

using namespace std;

int main(void)

輸出結果是:

c語言中程式中能不能存在兩個不相關的結構體

定義多少個不同的結構體,原則上是沒有限制的。完全可以,結構體只是乙個資料的組織形式,可以簡單理解為一種資料的型別,所以兩個不相干的結構體完全不影響 完全可以啊,結構體和其他的變數型別一樣用,沒什麼限制 union是用來定義聯合體的關鍵字,union維護足夠的空間來置放多個資料成員中的最大的 一種 而...

用兩個小馬達互相連線能不能發電,兩個小馬達怎麼電發電?為什麼我跟他的一樣的東西。怎麼不行。

不能,馬達屬於電動機,電動機與電動機並聯是不可能產生電流的,即使有也不會讓另外一個動彈一絲一毫。一個發電機和一個電動機並聯,有可能電動機會動。要看雙方產生 所需的電流是否同性 直流電 交流電 帥帥的書生 兩個小馬達就能發電,這是什麼原理!兩個小馬達怎麼電發電?為什麼我跟他的一樣的東西。怎麼不行。 你...

客廳放兩個魚缸好不好,客廳中能不能放兩個魚缸

土巴兔裝修 現在很多人都在客廳擺乙個大魚缸,就認為擺魚缸能夠為家裡招來財運,其實魚缸招財從風水學上來說的確是有一定的道理的,但是這種方法是它自己的適用條件,但是並不是隨便在家裡擺個魚缸就能招財的。甚至有的人在家裡擺了魚缸不但沒有招來財運,還損害了身體的健康。 如果想在家中養殖的風水魚能夠帶來好運,那...