首页 > 解决方案 > 是否可以将继承的类成员声明为私有?

问题描述

operator[](int) 当用and重载括号运算符并使用定义了和强制转换运算符operator[](std::vector<int>)的类的实例时,我正在处理一个歧义问题(问题在于可以隐式转换为 int 并因此产生歧义的布尔转换) .B::public A()boolstd::vector<int>

由于 bool cast 运算符是从 继承的A(),有没有办法在 的定义中将其定义为私有B()

语境:

我正在重载一个存储容器类(一个简单的包装器std::vector),B它是一个“比较器”类,可以逐个比较容器的值,并且可以转换为一个简单的bool值进行批量比较,或者std::vector<int>使用索引位置的true值。这使我既可以执行简单的批量比较,例如if(mat1=mat2) {}也可以将索引掩码应用于我的容器,例如mat1[mat1==14] = // ....

标签: c++classinheritanceimplicit-conversion

解决方案


推荐阅读