考虑这个类。
#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
?我觉得如果我混合使用指针和值类型,那么它看起来会不一致。将所有内容都设为指针是个好主意吗?