我想了解C++。任何人都可以解釋這段代碼是幹什麼的,我知道它是Java中的一種類型的setter和getter,但我不確定。使用指針和strcpy獲取值的C++類
Comm::Comm(const char* id)
{
strcpy(this->id, id);
}
char* Comm::getId()
{
return id;
}
我想了解C++。任何人都可以解釋這段代碼是幹什麼的,我知道它是Java中的一種類型的setter和getter,但我不確定。使用指針和strcpy獲取值的C++類
Comm::Comm(const char* id)
{
strcpy(this->id, id);
}
char* Comm::getId()
{
return id;
}
這段代碼做了什麼?
它灼傷了兒童的眼睛。
這裏的假設是類Comm
有一個char*
或char[N]
類型的成員變量。沒有「setter」本身,但Comm
的構造函數嘗試將其輸入複製到該成員變量。 getId
函數是這個成員變量的getter。
根據代碼的其餘部分,這可能是完全有缺陷,由於缺乏內存分配,缺乏記憶去分配的,以及缺乏拷貝語義。在最佳該成員是一個數組,然後在strcpy
調用中缺少範圍檢查是一個嚴重的安全風險。
該類使用std::string
重新設計會更好。
我會不是鼓勵你從這段代碼學習。
相反,從a good book學習。
這個答案也沒用, –
@DieterLücking:感謝您的成熟和富有成效的貢獻。 –
感謝您的消息靈通「它燃燒孩子眼中」 –
普通的錯誤代碼(如果你的例子顯示全部) –
這不是一個setter它是一個構造函數 – prajmus
我強烈建議你去拿一些能教會你的C++理由的書。我必須說,「通過遊戲編程開始C++」並不是一件壞事。 –