首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

构造函数不适用于从std :: string继承的类

构造函数不适用于从std::string继承的类,这个问题是因为C++中的构造函数不能被继承。当一个类从std::string继承时,std::string的构造函数不会被继承到子类中。

为了解决这个问题,可以使用std::string的构造函数初始化列表来初始化子类的基类。例如:

代码语言:c++
复制
#include<iostream>
#include<string>

class MyString : public std::string {
public:
    MyString(const std::string& str) : std::string(str) {}
};

int main() {
    MyString my_str("Hello, world!");
    std::cout << my_str<< std::endl;
    return 0;
}

在这个例子中,MyString类从std::string继承,并使用std::string的构造函数初始化列表来初始化基类。这样就可以正确地初始化MyString类的基类std::string。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • C++:51---继承中的构造函数、析构函数、拷贝控制一系列规则

    一、继承中的构造函数 根据构造函数的执行流程我们知道: 派生类定义时,先执行基类的构造函数,再执行派生类的构造函数 拷贝构造函数与上面是相同的原理 二、继承中的析构函数 根据析构函数的执行流程我们知道: 派生类释放时,先执行派生类的析构函数,再执行基类的析构函数 二、继承中被删除的函数的语法 基类或派生类可以将其构造函数或者拷贝控制成员定义为删除的。此外,某些定义基类的方式也可能导致有的派生类成员成为被删除的函数。规则如下: 如果基类中的默认构造函数、拷贝构造函数、拷贝赋值运算符、或析构函数是被删除的或者是

    03
    领券