gpt4 book ai didi

c++ - 取消继承 std::basic_string

转载 作者:行者123 更新时间:2023-11-30 02:57:27 35 4
gpt4 key购买 nike

基本上,我有一个使用自定义实用程序类的大型项目 c_string继承自 std::basic_string<char> .出于多种原因,我想编辑此类,以便

  1. 它不派生自std::basic_string<char>
  2. 我不必重新实现所有功能
  3. 我不必触摸每个使用 c_string 的文件

所以我想改变:

class c_string : public std::basic_string<char>
{
public:
typedef std::basic_string<char> Base;

c_string() : Base() {}
}

收件人:

class c_string
{

...

public:

...

c_string() {...}
}

所以,我想知道是否有人有好的策略来进行此更改且影响最小。

最佳答案

如果您的类在 std::string 上添加自定义功能(您的项目需要),那么您就不走运了:您要么必须封装 std::string(并实现所有方法以转发到 std::string 实现)或继承自 std::string(继承自 std::string 通常不是一个好主意)。

如果您的类没有在 std::string 上添加额外的功能,则将 class c_string { ... } 替换为 typedef std::string c_string;.

关于c++ - 取消继承 std::basic_string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629985/

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