以下代码无法编译:
class A : B, std::enable_shared_from_this<A>
{
public:
A();
virtual ~A();
public:
void initStr(std::string str=""){m_STR = str;};
private:
std::string m_STR;
};
错误输出:
无法将'A'强制转换为其私有基类'const enable_shared_from_this'
Xcode版本是8.2.1 Apple LLVM版本8.0.0(clang-800.0.42.1)
谁可以给我一些建议?谢谢!
答案 0 :(得分:2)
更改class
的{{1}}。 struct
默认情况下将继承设为公开:
struct
或者,您也可以指定要公开扩展的类:
struct A : B, std::enable_shared_from_this<A> {
A();
virtual ~A();
void initStr(std::string str = {}) { m_STR = str; }
private:
std::string m_STR;
};