'double& Point::operator[](unsigned int)'在此上下文中无法访问
‘double& Point::operator[](unsigned int)’ is inaccessible within this context
>我设置了两个类,如下所示:
class Point {
protected:
double coords[3];
public:
Point(double x, double y, double z) {
setX(x);
setY(y);
setZ(z);
};
~Point() {};
double x() {return coords[0];};
double y() {return coords[1];};
double z() {return coords[2];};
void setX(double x) {
coords[0] = x;
};
void setY(double y) {
coords[1] = y;
};
void setZ(double z) {
coords[2] = z;
};
double &operator[](unsigned int x) {
return coords[x];
}
};
class Vector:Point {
public:
Vector(double x, double y, double z);
~Vector() {};
double norm();
void normalize();
};
现在每当我尝试做这样的事情时:
Vector v;
printf("%dn", v[0]);
我得到:
error: ‘Point’ is not an accessible base of ‘Vector’
error: ‘double& Point::operator[](unsigned int)’ is inaccessible
error: within this context
为什么?
默认情况下,类继承是私有的。您必须显式告诉编译器您希望公共继承:
class Vector : public Point { // public
public:
Vector(double x, double y, double z);
~Vector() {};
double norm();
void normalize();
};
类的默认继承说明符是私有的。
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 用于访问容器<T>数据成员的正确 API
- 访问者访问变体并返回不同类型时出错
- 尝试通过多个向量访问变量时,向量下标超出范围
- #为""定义宏;静态";针对不同的上下文
- 无法访问嵌套类.类的使用无效
- 与互斥锁相比,旋转锁可以保证上下文切换
- 写入位置0x0000000C时发生访问冲突
- 我们可以访问一个不存在的联盟的成员吗
- C++从另一个类访问公共静态向量的正确方法是什么
- 我的简单if-else语句是如何无法访问的代码
- 从C++dll访问C#中的一行主要参数
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 呼叫IASetVerteXbuffers会使以后对设备上下文的所有呼叫造成访问违规(DX 11)
- 访问Lambdas中的外部上下文
- 如何在右键单击链接并从上下文菜单访问功能后获取链接的 DOM
- 如何从阻塞上下文访问基于类的参与者的状态(C++ Actor 框架)
- OpenCL - c++包装器-动态库中的上下文取消初始化导致访问冲突