考慮這個類。班級成員總是作爲一致性的指針?
#pragma once
#include <memory>
#include <string>
class A;
class B;
class Test
{
public:
Test();
~Test();
private:
std::unique_ptr<A> m_a;
std::unique_ptr<B> m_b;
std::unique_ptr<std::string> m_string1; // 1
std::string m_string2; // 2
};
我總是嘗試在頭文件中轉發聲明類。但是,我不會那樣做標準頭文件,向前聲明模板類的typedef只是很痛苦。無論如何,如果我有標題可用 - 我應該更喜歡第一種方式還是第二種方式 - m_string1
或m_string2
?我覺得如果我混合使用指針和值類型,那麼它看起來不一致。把所有東西都作爲指針是一個好主意嗎?
此問題屬於http://www.codereview.stackexchange.com/。 – antonijn
我認爲使用指向每個成員的指針可能會導致額外的空間 - 指針在64位系統中需要32位和8字節中的4個字節。簡單的數據類型可以更好地存儲爲值。 – cppcoder
@cppcoder:它可能是對齊使短類型被存儲到相同的長空間......很難說何時(而不是)這是真的。 –