C++私有成员会被继承?

2024-12-16 21:13:14
推荐回答(6个)
回答1:

拥有
构造函数和析构函数就不能继承

回来看了一下,真的好多答案啊
国内的C++教程乱七八糟,说法不一。
楼主还是去看看国外的教材吧。
私有成员是会被继承的,只是不能直接访问

引用《C++ Primer Plus》的原话:
派生类继承基类人数据成员和大部分方法,但不继承基类的构造函数,析构函数和赋值操作符。

reverse_walker 的答案已经很好的说明了
楼主还是去找国外教材看吧。。。

回答2:

  私有成员是会被继承的,只是不能直接访问。
引用《C++ Primer Plus》的原话:
派生类继承基类人数据成员和大部分方法,但不继承基类的构造函数,析构函数和赋值操作符。
  C++是在C语言的基础上开发的一种通用编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。

回答3:

私有成员不能被继承。私有成员就像是自己的特征,你自己的特征别人怎么能继承呢。构造和析构也是不能继承的

回答4:

继承是不管哪种级别都继承。关键是继承了以后谁真正拥有权限使用那些被继承的类成员。这是关键。

回答5:

继承对象肯定是有基类的一切东西(包括私有成员).问题只不过是编译器不让你在代码级别上访问而已,只要随便转成其他类型,再转回来就可以骗过编译器的阻止.

#include
#include
using namespace std ;
class A
{
private:
int i ;
public:
A():i(112) { }
int* get_iddress(){ return &i ; }
} ;
class B : public A
{

} ;
void main(void)
{
B b ;
//对象的内存块是连续的,不管是堆上还是栈上
//可以看出b.i是包含在b对象的内存块中的
cout << hex << b.get_iddress() << endl ;
cout << "Mem block for b is from " << &b << " to "
<< (void*)( &b + sizeof( b ) ) << endl ;
//因为b只有一个int数据,所以b和b.i是同个地址.转换成int*指针,打印我们看到是112
cout << dec << *reinterpret_cast(&b) << endl ;
}

回答6:

buneng