C 中怎麼判斷兩個物件是否相同

時間 2021-06-25 14:46:02

1樓:it孤鶩

singleclass c1 = singleclass::getsingleclass();

他會呼叫預設拷貝函式,那麼這時候的物件和傳過來的物件,雖然內容相同,但是有各自的記憶體空間

singleclass& c1 = singleclass::getsingleclass();

& 是引用 c1直接指向傳過來的物件,相當該物件的別名,共用所以資源

所以singleclass& c1 = singleclass::getsingleclass();

singleclass& c2 = singleclass::getsingleclass();

可以比較 c1==c2 是對的

2樓:

加引用就是說不用開闢新的記憶體,和之前的物件一起使用同一塊記憶體

3樓:匿名使用者

物件是否相同?是同一個型別還是這兩個物件在記憶體中是同一個地址

4樓:匿名使用者

需要寫一個函式實現(或者該物件已經內建函式實現這一功能)

5樓:匿名使用者

笨點的辦法就寫個比較函式吧

6樓:匿名使用者

怎麼才相等,只有你自己知道。。。

7樓:溪貝0號

假如一個物件叫c1, 一個物件叫c2,

這個類裡面有個變數叫 int m_age,

假設:若是c1的 m_age 等於 c2的m_age, 則 c1 和 c2物件相等

可以在類裡面寫一個成員函式

bool xiangdeng(& c) //只需要傳一個物件即可

在main函式呼叫的時候, 用c1.成員函式(c2)形式呼叫,得出一個bool值

bool ret=c1.xiangdeng(c2);

if (ret)

cout<<"兩個物件相等"<

else

cout<<"兩個物件不等"<

重點:這種方法是成員函式判斷法, 只需要傳一個物件, 用 c1.成員函式(c2)的形式呼叫。

c++如何判斷兩個物件是否是同一個物件?判斷兩個物件的地址可以嗎?

8樓:

地址相同自然是同一個物件了

自定義類你可以過載operator ==啊

9樓:倒黴熊

不明白,你這裡說的相同是指相等呢

10樓:匿名使用者

可以用auto_ptr儲存一個物件,則這個物件是唯一的,就不用判斷了。

c++ 如何判斷一個類a的兩個物件a1和a2是否同一物件

11樓:匿名使用者

通過地址判斷

a* p = &a1;

a* q= &a2;

if(p == q)

12樓:year醫海無邊

分情況如果是定義的時候 使用=操作

比如class a

a a=b;

呼叫的是拷貝構造

除此外,

a=b都是呼叫賦值過載。

13樓:謝興橋

過載一個==邏輯運算子,直接if(a1==a2)就可以了。思路這樣

14樓:匿名使用者

這個問題就有問題 都是兩個物件怎能還能是一個物件啊

c++中如何判斷一個物件是否屬於某個類??

15樓:

c++語言判斷一個物件有兩種機制

在執行時判斷,使用if else

int i ;

if( typeid( i ) == typeid( int ) )cout << "i is int" << endl ;

else

cout << "i is not int" << endl ;

在編譯時判斷,使用過載或者特化

template< class t >

void func( t t )

template< >

void func( int i)

int i ;

func( i )

希望對你有用。

16樓:匿名使用者

你仔細看看這個程式rtti(執行時類資訊機制)#include

#include

#include

using namespace std;

class a

};class b : public a {};

void foo (a* pa)

int main (void)

17樓:匿名使用者

判斷 x 的動態型別是不是y,可以用表示式:typeid(x) == typeid(y)

這個要包含:標頭檔案

另外vc可能需要你開啟rtti之後才能用。

C語言中判斷兩個字串是否相同的方法

c語言提供了幾個標準庫函式,可以比較兩個字串是否相同。以下是用strcmp 函式比較字串的一個例子 include include void main void void main void 上例的列印輸出如下所示 str 1 is equal to str 2.str 1 is not equal...

c語言,兩個將兩個陣列中的相同元素全部刪去,輸出刪去後的兩個陣列。如1,1,1,2,2,2,0,2,1,

不懂多來問問 include using namespace std 去掉陣列中為a的資料 int main int a2 10 int j 0,i while j l1 else cout l1 去掉陣列中為a的資料 寫好了 include int main printf 請輸入第二個陣列的元素個...

這兩個廣義積分的是否收斂怎麼判斷

讚的都帥 解法如下圖 定積分概念的推廣至積分割槽間無窮和被積函式在有限區間上為無界的情形成為廣義積分,又名反常積分。其中前者稱為無窮限廣義積分,或稱無窮積分 後者稱為無界函式的廣義積分,或稱瑕積分。通俗的講,積分是指函式圖形與座標軸圍成的面積。例如f x 從a到b的積分就等於曲線f x 直線x a,...