C++ C++;继承私人成员

C++ C++;继承私人成员,c++,inheritance,private,C++,Inheritance,Private,我有一个关于继承的问题: 例如,我有一个带有私有成员的基类a:x,y 我有getter函数getx和gety, 我想使用从A继承到B类的getter函数 但我的问题是x和y是A的私人成员 我无法从B访问A的私人文件 所以我需要为类B创建两个x,y,但是这样我就不能使用类A的get函数了 有什么帮助吗?我不知道如何在不创建新成员的情况下访问A的私有成员。也许和构造器一起?但是我不知道怎么做。私人会员总是私人的。它们不能从外部类访问,任何费用。您可以尝试保护< /代码>,考虑以下内容: #inclu

我有一个关于继承的问题:

例如,我有一个带有私有成员的基类a:x,y

我有getter函数getx和gety, 我想使用从A继承到B类的getter函数

但我的问题是x和y是A的私人成员 我无法从B访问A的私人文件

所以我需要为类B创建两个x,y,但是这样我就不能使用类A的get函数了


有什么帮助吗?我不知道如何在不创建新成员的情况下访问A的私有成员。也许和构造器一起?但是我不知道怎么做。

私人会员总是私人的。它们不能从外部类访问,任何费用。您可以尝试<代码>保护< /代码>,考虑以下内容:

#include <iostream>

// Base class
class A {
    protected: // declaration for protected vars which are clearly accessible to B
        int x;
        int y;
    public:
        void setX(int w) { x = w; }
        void setY(int h) { y = h; }
};

// Derived class
class B: public A { // derives A
    public:
    int multiply() { 
        return (x * y); // accesses x and y from class A
    }
};
#包括
//基类
甲级{
受保护://B可清楚访问的受保护VAR声明
int x;
int-y;
公众:
void setX(int w){x=w;}
void setY(int h){y=h;}
};
//派生类
B类:公共A{//A
公众:
整数乘(){
返回(x*y);//从类A访问x和y
}
};
x
y
可从A类访问到衍生类B


就是这样。

私人会员总是私人的。它们不能从外部类访问,任何费用。您可以尝试<代码>保护< /代码>,考虑以下内容:

#include <iostream>

// Base class
class A {
    protected: // declaration for protected vars which are clearly accessible to B
        int x;
        int y;
    public:
        void setX(int w) { x = w; }
        void setY(int h) { y = h; }
};

// Derived class
class B: public A { // derives A
    public:
    int multiply() { 
        return (x * y); // accesses x and y from class A
    }
};
#包括
//基类
甲级{
受保护://B可清楚访问的受保护VAR声明
int x;
int-y;
公众:
void setX(int w){x=w;}
void setY(int h){y=h;}
};
//派生类
B类:公共A{//A
公众:
整数乘(){
返回(x*y);//从类A访问x和y
}
};
x
y
可从A类访问到衍生类B


就是这样。

C++提供了您可能想要使用的受保护机制。看一看

您可以保护类A的成员x和y,以便从A继承的类B可以访问它们

class A{
protected:
int x;
int y;
};

class B : public A{

public:
 void somefn(int someval){
   x = someval; //A::x is being set here.
}
};

C++提供了您可能想要使用的受保护机制。看一看

您可以保护类A的成员x和y,以便从A继承的类B可以访问它们

class A{
protected:
int x;
int y;
};

class B : public A{

public:
 void somefn(int someval){
   x = someval; //A::x is being set here.
}
};

无法从派生类访问私有成员。改为使用受保护的成员。将它们视为私有的,继承除外,而公共成员对于每个类都是可访问的。最好显示代码,而不是用英语描述代码。细节确实很重要,为了给你指明正确的方向,最好看看什么是
A
B
你为什么要访问不同类的私有成员?它们不能从外部访问,这就是为什么它们是私有的。那么我能对我的功能做些什么呢?因为如果我不能使用A的get函数,我将不得不在B中创建新函数,所以我不需要inheirtance如果函数是公共的,你可以调用它们,但是请发布一个私有成员不能从派生类访问的帖子。改为使用受保护的成员。将它们视为私有的,继承除外,而公共成员对于每个类都是可访问的。最好显示代码,而不是用英语描述代码。细节确实很重要,为了给你指明正确的方向,最好看看什么是
A
B
你为什么要访问不同类的私有成员?它们不能从外部访问,这就是为什么它们是私有的。那么我能对我的功能做些什么呢?因为如果我不能使用A的get函数,我将不得不在B中创建新函数,所以我不需要内置函数如果函数是公共的,你可以调用它们,但请发布A