2013-08-16 50 views
5

有人可以消除C++的類屬性和方法嗎?我的印象是,attribute表示任何成員變量,而method表示任何成員函數。C++調用類成員變量「屬性」是否正確?

謝謝

+1

屬性=有點使用但非正式的術語。 – Jon

+1

我不會在C++中使用術語'attributes',因爲名稱'attributes'現在指的是100%完全不相關的語言部分。 –

+1

我不認爲這是不正確的,因爲在「一個人可能不會使用這些詞」中,或者「在C++中他們不具有這種含義」。但是,自從C++ 11 [其他](http://en.cppreference.com/w/cpp/language/attributes)以來,_attribute_這個詞就被使用了。只要你的條款用法足夠清楚,並且不會與現有術語保持太遠,那就不應該成爲問題。 – didierc

回答

6

定義「正確」。

分別將數據成員和成員函數分別稱爲「屬性/屬性」和「方法」是常見做法 - 這是通用OO措辭。 (「屬性」用C++使用用於something else,雖然如此,這很可能是混亂的來源。)

C++標準,但是,的確使用這些術語(除了當然屬性,如如上所述)。如果您不想冒任何風險並始終保持正確,請使用「數據成員」和「成員函數」。

但是,如果您只是想向Java程序員解釋C++,那麼您可能會在開始時忽略「property」和「method」。

+3

我會稱它**不正確**。這與* method *和* member function *不一樣,因爲在C++標準中有一個名爲* attribute *的概念。也就是說,如果您在C++中討論* method *,人們知道* method *在C++中沒有意義,並且它們將默認爲OO術語。如果在C++對話中使用* attribute *,許多人會根據標準解釋您正在討論* attributes *。 –

+0

@DavidRodríguez-dribeas所以,基本上,[這](http://stackoverflow.com/questions/18282330/c-is-it-correct-to-call-class-member-variables-attributes/18282421?noredirect=1 #comment26820325_18282330)。 (再次強調,我並不是說使用一般條款會優於標準條款,也許我應該更好地強調這一點。) – 2013-08-16 21:57:57

+0

是的,我沒有閱讀過該評論。 –

0

類的屬性會轉化爲其成員。一種方法與一般的成員函數不同。但是「在面向對象編程中,方法是與類相關的子程序(或程序)。」 - Wikipedia

+3

一個方法總是與一個類相關聯(儘管在C++中使用單詞成員函數更常見)。 –

+0

你說得對,如果我們用OO說話。 –

+0

@ Pierre-AntoineLaFayette:你知道一個「說」(在compsci langauges的背景下),「方法」是指其他的嗎? –

0

通常來說,一個屬性描述的是「這輛車的一個屬性是它很長」,或者「大熊貓的其中一個屬性是它的黑白色彩」。

我XML,屬性用於在標籤中添加額外的信息,e.g <species id=3212>Ailuropoda melanoleuca<common_name>Giant Panda</common_name></species> - id是一個屬性,Ailuropoda melanoleuca是一種價值,common_namespecies的標籤。

但我在類「成員變量」中調用變量,並在類「成員函數」或「方法」中調用函數。

+0

true,「attribute」通常與英語中的「特徵」或「特質」(C++中具有特定含義的另一個詞)相關聯。 – didierc

2

我不會那樣做。儘管可以在OO的一般背景下理解,但是在C++中將會令人困惑,因爲屬性在標準中具有精確的定義,而不是數據成員

相關問題