[英]Is acceptable usage access specifiers before each member of class in C++
我寫了一些代碼c ++
public class SomeClass
{
private:
int m_CurrentStatus;
int m_PreviouseStatus;
public:
int get_CurrentStatus() { return m_CurrentStatus; }
int get_PreviouseStatus() { return m_PreviouseStatus; }
}
在c#風格
public class SomeClass
{
private: int m_CurrentStatus;
private: int m_PreviouseStatus;
public: int get_CurrentStatus() { return m_CurrentStatus; }
public: int get_PreviouseStatus() { return m_PreviouseStatus; }
}
在每個成員之前這樣的用法訪問說明符是可以接受的嗎? 或者麻煩編譯器花費更多時間進行編譯或其他效果? 代碼編譯成功,沒有警告。
你所描述的是合法的C ++。
對編譯時間的影響取決於編譯器。 但實際上,您可能很難發現編譯時間的任何差異。
對代碼可讀性可能有影響或有益 - 即人類理解正在發生的事情的能力。 通常,人們更喜歡“部分”(例如,單個訪問修飾符( public
, private
或protected
)之后的幾個成員的聲明),只要這些部分不會變得太大(例如,填充超過屏幕時)編輯代碼)。 因此,按照您的方式進行操作可能不受其他開發人員的歡迎。 這是非常主觀的 - 不同的人會有不同的偏好。 但是,如果您發現其他人反對您的方法,請傾聽他們 - 除非您樂意與其他團隊成員不相處,失去工作等等。
對班級中的數據成員的布局可能有影響,也可能沒有影響。 不同版本的C ++標准提供了不同的保證,但編譯器有相當大的自由來布置不同的類。 如果您編寫的代碼依賴於(或測試)特定的類布局(數據成員的順序,偏移等),您可能會發現差異。 或者你可能不會。 但是,無論如何,允許這些內容在實現(編譯器)之間變化,因此編寫依賴於特定布局的代碼通常是一個壞主意。
它是合法的語法,不應該擾亂編譯器,你可以擁有任意數量的公共和私有塊。 我不認為它在語法上是一種改進。
這是C ++完全合法的語法,
除了class
前的public
關鍵字
並且在類的右大括號之后缺少分號( ;
)。
但是我從來沒有見過這樣的東西,我想它肯定不常用,而且在我看來,它沒有增加代碼的可讀性(相反,我個人認為閱讀起來比較麻煩)。
它肯定是合法的,並且在每個類成員之前放置訪問說明符都沒有編譯時間的懲罰。 你也可以在每一行的末尾加上50個分號。 它根本不是規范的C ++。
它是合法的,也是非常正確的。 如果您希望公開您的成員,則不會使用面向對象的語言。 面向對象編程的基本用法是信息隱藏。
在你的情況下(在時間問題上)唯一可以使編譯器麻煩的是你的功能塊在類中。
我的意思是什么?
如果你有一個main.cpp和一個class.h,你的函數在class.h中聲明和定義,你的編譯需要更長的時間,而不是你的函數體是在functions.cpp中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.