Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以从派生类访问私有成员(取消基类的成员FXN) 这是我的C++程序,继承了BASE。< /P>_C++_C++11 - Fatal编程技术网

为什么可以从派生类访问私有成员(取消基类的成员FXN) 这是我的C++程序,继承了BASE。< /P>

为什么可以从派生类访问私有成员(取消基类的成员FXN) 这是我的C++程序,继承了BASE。< /P>,c++,c++11,C++,C++11,因为我们知道私有成员不是继承的,但当我发现o1的大小时,它给出了4个明显的2 int成员,然而o2的大小是6,但如果私有成员不是继承的,则应该是4。有人能帮忙吗 还有一件事,因为我能够公开base的成员fxns,而这些成员又可以访问私有数据成员,所以我们可以说私有成员也可以在类外访问 因为我们知道私有成员不是继承的 那根本不是真的。私有成员是继承的,但派生类无法访问它们。因此,它们的存储仍然存在,否则基类将无法使用其自己的成员。请记住,派生类对象是基类对象,只是添加了更多内容。所有非静态成员都继

因为我们知道私有成员不是继承的,但当我发现o1的大小时,它给出了4个明显的2 int成员,然而o2的大小是6,但如果私有成员不是继承的,则应该是4。有人能帮忙吗

还有一件事,因为我能够公开base的成员fxns,而这些成员又可以访问私有数据成员,所以我们可以说私有成员也可以在类外访问

因为我们知道私有成员不是继承的

那根本不是真的。私有成员是继承的,但派生类无法访问它们。因此,它们的存储仍然存在,否则基类将无法使用其自己的成员。请记住,派生类对象是基类对象,只是添加了更多内容。

所有非静态成员都继承给派生类

并且派生类可以访问所有成员

可以直接访问公共和受保护的成员,也可以访问私有成员
通过继承的成员函数或指针间接访问

既然我们知道私人成员不是继承的,你的假设是错误的。它们继承的不是直接访问的。请修复代码缩进和大写,使其清晰易懂。您使用的是Turbo C++吗?如果是这样,停止。请立即停止使用。已经20年了。如果你的导师/老师/教授坚持要你使用它,直接去招生办公室要求退款。嗯,这是教学大纲的一部分,我的老师无权选择教什么和不教什么。这取决于大学这是哪所大学?我感觉到一个措辞强硬的讨厌的东西正向他们走来。
#include <iostream.h>
#include <conio.h>

class base
{
    int x;
public:
    int y;
    void set(int a,int b)
    {
        x=a;
        y=b;
    }
    void show()
    {
        cout<<"X ="<<x;
    }
};

class der:public base
{
    int i;
};

void main()
{
    clrscr();
    int p,q;
    base o1;
    der o2;
    o2.y=10;
    o2.x=20;
    q=sizeof(o2);
    p=sizeof(o1);
    cout<<"Size of Abc "<<p;
    cout<<"\nSize of Der "<<q;

    getch();
}