網(wǎng)站建設(shè)人員百度指數(shù)數(shù)據(jù)官網(wǎng)
在C++中將引用轉(zhuǎn)換為指針表示
有沒有辦法在c ++中"轉(zhuǎn)換"對指針的引用?在下面的例子,func2已經(jīng)定義了原型和我不能改變它,但func是我的API,我想為pass兩個參數(shù),或一(組和第二組,以NULL)或既不(均設(shè)置為NULL):
void func2(some1 *p1, some2 *p2);
func(some1& obj, some2& obj2)
{
func2(…);
}
Che*_*hen 31
func2(&obj, &obj2);
使用正常變量等參考參數(shù).
Jon*_*ood 10
只需獲取對象的地址即可.
some1 *p = &obj;
或者在你的情況下:
func2(&obj, &obj2);
Jar*_*d42 6
在正常情況下,您可以簡單地使用&:
void func(some1& obj, some2& obj2)
{
func2(&obj, &obj2);
}
但operator&可能會重載,因此std::addressof(自 C++11 起)應(yīng)用于這些情況:
void func(some1& obj, some2& obj2)
{
func2(std::addressof(obj), std::addressof(obj2));
}