gpt4 book ai didi

c++ - 从 std::basic_string 继承可以吗?

转载 作者:行者123 更新时间:2023-11-30 05:45:04 25 4
gpt4 key购买 nike

<分区>

我在这里阅读了许多类似的问题,但我仍然不确定答案。我知道不鼓励从​​ STL 类派生,但 std::basic_string 似乎是一个不错的选择。

我面临的问题是 g++ 不合适,因为 std::basic_string 没有虚拟析构函数。为什么不是虚拟的? std::string 不是从它派生的吗?

一次尝试:

class string_t :
private std::basic_string<char>
{
public:
string_t() :
basic_string<value_type>() {}

string_t(
const basic_string<value_type>& s) :
basic_string<value_type>(s) {}

virtual ~string_t() {}
};

另一个尝试:

class string_t :
public std::basic_string<char>
{
public:
virtual ~string_t();
};

在使用 -Weffc++ 编译时都抛出此警告:

warning: base class 'class std::basic_string' has a non-virtual destructor

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com