我所面臨的問題與訪問一個類的實體有關,我將通過一系列的代碼剪輯來解釋它:
如果我有一個類Foo,定義如下:
如果我有一個定義如下的類Foo:
class Foo {
public:
Foo(){x=5}。
private:
int x;
}
然后我在main中創建了一個該物件的實體,如下所示:
int main(){
Foo a;
然后我想在另一個類中訪問該物件的實體并將其存盤起來:
class Bar{
public:
Bar() {copy = a}.
private:
Foo復制。
}
這怎么可能呢?有什么方法可以解決這個問題嗎?希望得到任何幫助!
uj5u.com熱心網友回復:
最自然的方法是將Foo物件作為引數傳遞給Bar建構式:
Bar(Foo a)
{
std::cout << a.x << '
'。
}
對于更新的問題,我可能會將物件作為一個常量參考來傳遞,而不是通過值來傳遞:
Bar(Foo const& a)
: copy{ a }
{
}
這將初始化成員變數copy,使其成為a參考的Foo物件的副本。
對于Qt的特殊情況,你幾乎不應該對
QObject衍生的物件進行復制。相反,你應該有指向它們的指標:
class Bar
{
public:
Bar(Foo* a)
: 指標{ a }
{
}
private:
Foo* pointer;
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315440.html
標籤:
