2010-11-10 80 views
-6

OK,可以說我有這樣的:C++訪問的東西了側類

class A: 
{ 
Public: 
    int dd; 
} 

好吧,那麼我有這個類:

class B: 
{ 
Public: 
    void sss(){ ff=dd; } 
    int ff; 
} 

好了,問題是,B類沒有按」不知道dd是什麼。我怎樣才能讓B班知道呢?

+8

你確定你理解類? – 2010-11-10 21:09:10

+0

maaaaan ....... – 2010-11-10 21:12:42

+6

就像我剛剛說過的,我要說最後一次,[得到一本書](http://stackoverflow.com/questions/388242/the-definitive-c-書籍指南和列表)並閱讀它。你不知道基本的C++,你需要。 -1從現在開始,除非你的問題是關於理解書中的東西。 – GManNickG 2010-11-10 21:13:02

回答

4

它是public:而不是Public:

由於ddA的一部分,因此您需要A的實例才能訪問dd

+0

精確的簡短答案,避免跳到關於真正含義的結論。 – aschepler 2010-11-10 21:21:44

0

你需要有A一個實例,並把它傳遞給sss方法才能訪問這些數據:

void sss(A a) { ff = a.dd; } 

如果你想只有一個的dd副本,而不是單一的副本每A實例,那麼你就必須做出dd靜:

class A 
{ 
public: 
    static int dd; 
}; 

class B 
{ 
public: 
    void sss() { ff = A::dd; } 
    int ff; 
}; 
0

也許通過傳遞一個A實例?

class B: 
{ 
Public: 
    void sss(const A& a){ ff=a.dd; } 
    int ff; 
} 
1

這兩個類沒有任何關係;由於B無法訪問任何A對象,因此無法獲取其成員的值。

如果您要通過值,引用或指針將A對象傳遞給B構造函數,那麼您可以在公開它之後訪問它的dd成員。

+0

+1。此外,要將'** P ** ublic'更改爲'** p ** ublic' – 2010-11-10 21:14:16

0

你的代碼看起來不像C++,但我會盡力回答你的問題。

有幾種可能性來做你想做的事情。我只是挑一個容易理解的東西。

做些事情是這樣的:

class B 
{ 
public: 
    void sss() { ff = a.dd; } 
    int ff; 

private: 
    A a; 
}; 

但是,如果你不告訴我你真正要實現與該類即其responsibilites類有這不會幫助你很多東西。

0

,你給出的代碼,...

class A: 
{ 
Public: 
    int dd; 
} 

class B: 
{ 
Public: 
    void sss(){ ff=dd; } 
    int ff; 
} 

...是無效的C++。

你可以很容易地發現,試圖編譯它。然後編譯器會抱怨很多不相關的東西,但是它的第一條消息將在A之後與無關的冒號相關。當您刪除並再次編譯時,其第一條消息將與Public相關,而不是正確的public(小寫)。等等。

Syntacically正確的代碼(即仍然會產生一個編譯錯誤,但不是基本的語法):

class A 
{ 
public: 
    int dd; 
}; 

class B 
{ 
public: 
    void sss(){ ff=dd; } 
    int ff; 
}; 

想象一下,你創建A類的五個實例,命名a1a2a3a4,和a5。每個此類實例都有一個成員dd,因此您可以將這五個成員稱爲a1.dd,a2.dd,a3.dd,a4.dda5.dd

現在創建一個B實例,命名爲'b'。你可以撥打b.sss()。並且該成員函數有效地執行b.ff=dd。或者如果它有意義並被編譯器接受的話。但是它不能爲a1.dd,a2.dd,a3.dd,a4.dda5.dd中的哪一個提到?

所以,因爲這是一個非常基本的C++概念,所以你需要一個好的C++ textbook,比如Bjarne的最新版本,並且從頭開始。另外,由於C++是一種非常複雜的編程語言,因此可能會更好地從一些更簡單的語言開始,如Java,甚至更簡單,如JavaScript或Python。我推薦Python。細節上與C++有很大不同,但這兩種語言都是「傳統」編程語言。使用Python,您將瞭解決策結構和功能以及事物,包括類與實例。

乾杯&心連心,