我有以下基类
class Grammateas
{
public:
Grammateas(std::string name):_name(name){};
virtual ~Grammateas(){};
private:
std::string _name;
};
以及以下派生类
class Boithos final : public Grammateas
{
public:
//using Grammateas::Grammateas;
Boithos(int hours):Grammateas("das"),_hours(hours){};
virtual ~Boithos(){};
private:
int _hours;
};
我想使用基类构造函数来创建这样的对象
Boithos Giorgakis(5); //works
Boithos Giorgakis("something"); //Bug
我读到我可以使用 using 关键字,但是当我尝试使用它时
using Grammateas::Grammateas;
编译器返回一条消息
错误:“Grammateas::Grammateas”命名构造函数
你能帮我理解构造函数中的using关键字吗?
您的代码 - 与using Grammateas::Grammateas;
未注释 - 应该有效。 (但要注意:继承的构造函数会离开_hours
未初始化。)
通过继承构造函数using
-声明是 C++11 中的新功能。也许您的编译器尚不支持此功能,或者在组合继承的构造函数和其他重载时遇到问题。 (如果它接受final
说明符,它似乎首先被正确设置来编译 C++11。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)