【发布时间】:2015-03-12 15:30:12
【问题描述】:
#include<iostream>
#include <stdlib.h>
#include<cmath>
#include<algorithm>
using namespace std;
class A
{
protected:
int x,y;
public:
A():x(0),y(0){}
A(double vx, double vy):x(vx), y(vy){}
~A(){}
};
class B: public A
protected:
double ct;
public:
B(): A(0,0), ct(0){}
B(double x, double y, double ctin): A(x,y), ct(ctin){}
B calculate(B &v3,A &v2);
~B(){}
};
B B::calculate(B &v4,A &v3)
{
x = v4.x*v3.x;
B temp_R(x,y,ct);
return temp_R;
}
我正在尝试访问 v3 的第一个组件,即 A 类,但代码无法编译,错误消息在
v3.x;
状态:“受保护的成员”A::x”不能通过“A”指针或对象访问。
我以为 x 和 y 是从 A 类继承到 B 类的,那为什么不能访问它们呢?
【问题讨论】:
-
受保护的成员功能? o.O
-
伴侣此代码还有其他不相关的问题。请发布您的 实际 MCVE,而不是您在问题提交框中发明的一些 sn-p。
-
@LightnessRacesinOrbit 抱歉刚刚受保护的成员:P
-
class A {然后是base(double, double)的构造函数?这是相当一些未解决的问题是的。 -
@LightnessRacesinOrbit,好的,让我缩短我的代码以便于理解。