1樓:
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 )
希望對你有用。
2樓:匿名使用者
你仔細看看這個程式rtti(執行時類資訊機制)#include
#include
#include
using namespace std;
class a
};class b : public a {};
void foo (a* pa)
int main (void)
3樓:匿名使用者
判斷 x 的動態型別是不是y,可以用表示式:typeid(x) == typeid(y)
這個要包含:標頭檔案
另外vc可能需要你開啟rtti之後才能用。
c++物件導向程式設計中怎麼判斷一個物件的類型別
4樓:匿名使用者
通過typeid可以獲得物件的型別名稱,然後可以配合if else邏輯建立相應物件型別的物件
#include
#include
using namespace std;
int main()
c++如何判斷兩個物件是否是同一個物件?判斷兩個物件的地址可以嗎?
5樓:
地址相同自然是同一個物件了
自定義類你可以過載operator ==啊
6樓:倒黴熊
不明白,你這裡說的相同是指相等呢
7樓:匿名使用者
可以用auto_ptr儲存一個物件,則這個物件是唯一的,就不用判斷了。
c++中如何判斷一個物件是否屬於某個類?
8樓:雨厚天勤
解決**如下:
c++ 中62616964757a686964616fe58685e5aeb931333365646334
base * p=new a();
base* is = dynamic_cast(p);
return is ? true : false;
類宣告如下: class father; class child : public father; 然後在某處這樣寫:
father *apinstance[2];//a是array的縮寫,p是pointer的縮寫,變數名叫instance。
在c++語言當中,如何判斷一個物件為空?
9樓:馮老師(必果學院
copyc++語言中,物件沒有空和不空的概念,只有物件指標才有空和不空的概念
判斷物件指標是否為空只需要和null常量進行比較即可如果相等,則為空,否則不為空
另外物件雖然沒有空和不空的概念,但是有有效和無效的概念當物件的解構函式被呼叫之後,物件即成為一個無效物件一般可以用控制代碼法來判斷
當物件被構造的時候,在一個全域性的對映表中註冊該物件,獲得一個唯一控制代碼判斷的時候,用物件的控制代碼資訊直接在對映表中進行查詢,如果存在,則有效;如果不存在則無效
析構物件的時候,同時從對映表中刪除該物件的控制代碼資訊
10樓:鍵盤未找到
c++裡使用指標判斷:
person * p = new person();
if( 0 == p )
//...
c++中怎麼判斷兩個物件是否相同
11樓:it孤鶩
singleclass c1 = singleclass::getsingleclass();
他會呼叫預設拷貝函式,那麼這時候的物件和傳過來的物件,雖然內容相同,但是有各自的記憶體空間
singleclass& c1 = singleclass::getsingleclass();
& 是引用 c1直接指向傳過來的物件,相當該物件的別名,共用所以資源
所以singleclass& c1 = singleclass::getsingleclass();
singleclass& c2 = singleclass::getsingleclass();
可以比較 c1==c2 是對的
12樓:
加引用就是說不用開闢新的記憶體,和之前的物件一起使用同一塊記憶體
13樓:匿名使用者
物件是否相同?是同一個型別還是這兩個物件在記憶體中是同一個地址
14樓:匿名使用者
需要寫一個函式實現(或者該物件已經內建函式實現這一功能)
15樓:匿名使用者
笨點的辦法就寫個比較函式吧
16樓:匿名使用者
怎麼才相等,只有你自己知道。。。
17樓:溪貝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++ 如何判斷一個類a的兩個物件a1和a2是否同一物件 18樓:匿名使用者 通過地址判斷 a* p = &a1; a* q= &a2; if(p == q) 19樓:year醫海無邊 分情況如果是定義的時候 使用=操作 比如class a a a=b; 呼叫的是拷貝構造 除此外, a=b都是呼叫賦值過載。 20樓:謝興橋 過載一個==邏輯運算子,直接if(a1==a2)就可以了。思路這樣 21樓:匿名使用者 這個問題就有問題 都是兩個物件怎能還能是一個物件啊 兩種方式 string.vauleof 括號內寫上你要找的字元,返回 1就沒有 abc contains a string 字串常量 stringbuffer 字元創變數 stringbuilder 字元創變數 1.三者在執行速度方面的比較 stringbuilder stringbuffer st... 風若遠去何人留 c c 中,任何一個變數在定義後即擁有自身的記憶體空間,而記憶體空間中是一定有值的,所以不存在絕對意義上的空值。一般來說,判斷空值都是判斷定以後,是否被賦值過,所以只需要判斷變數值是否還是初始值即可。區分變數型別,有一些常用的初始化情況 1 指標型別。指標型別一般被初始化為null,... string s dsafjsakfas int ilen s.length 得到字串的長度char s1 new char ilen 1 for int i 0 i可以像字元陣列一樣直接訪問下標為i 的字元 知道這點你應該就知道怎樣做了.si i 0 大致就這樣,自己寫的,沒有複製貼上 inclu...如何判斷String中是否包含某個字元
如何在c和c 中判斷變數是否為空
C中如何將String類物件裡的字串完整賦值給