C++类继承设置"classA"数据成员等于"ClassB"
C++ class inheritance setting "classA" data member equal to "ClassB"
我试图有一个成员函数的类a设置值为任何值的类b是。我并没有完全理解继承,所以如果这是一个简单或愚蠢的错误,请原谅我。另外,将转换函数作为两个类的朋友会更容易吗?
class B
{
protected:
int valueb;
public:
B() { }
B(int x) {valueb=x;}
};
class A: public B
{
int valuea;
public:
A():B() {}
A(int x):B(x) {valuea=x;}
void convert(B x)
{
valuea = x.valueb;
}
int getValue() {return valuea;}
};
int main( )
{
A a(1);
B b(2);
a.convert(b);
cout << a.getValue() << endl;
}
如果你能说明你想用这个设计解决的问题,你的问题就会更容易回答,但我还是要加几美分。
我试图有一个类a的成员函数设置值为什么B类的值为。
由于A继承了B,所以这没有多大意义。A 是一个 B,如果A有B作为一部分,即
,则更有意义。class A{
B partOfA;
你的名字convert表明你可能想要将B类型的对象转换为A类型的对象,这也很奇怪但是你可以通过构造函数
来实现A(const B& b):B(b){}
所以不是做"转换"而是创建一个新对象
B b;
A a(b);
如果您的唯一目标是从B访问x.valueb
,则需要B中的公共访问器成员,参见实例访问派生类中的受保护成员
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 数据成员SFINAE的C++17测试:gcc vs clang
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 静态数据成员模板专用化的实例化点在哪里
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 使用指针访问数组中的对象数据成员
- 友元函数无法访问私有数据成员 (c++)
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 将私有数据成员添加到野牛生成的类中
- 输入数据成员未按要求工作
- 二维矢量数据成员
- 在类 A 中创建类型为 B 类的向量 - 访问数据 [C++] [成员在两个类中都是私有的]
- 调用在 HXX 文件中声明的静态数据成员
- 是否可以根据其数据成员的类型确定类型的大小
- 访问数据成员(本身是对象)的数据成员,就好像它们是类成员一样
- 使公共数据成员在C++中无法访问
- C++类继承设置"classA"数据成员等于"ClassB"