C++中的公有继承和私有继承

来源:百度知道 编辑:UC知道 时间:2024/05/31 21:01:05
基类中的私有成员不能被派生类继承,但派生类中的构造函数还要写出基类构造函数中需要的参数,那不就是给基类的私有成员赋值吗?既然都不能继承私有成员,那干嘛还要给它赋值?这不矛盾吗?派生类到底能不能继承基类的私有成员??

派生类不能继承基类的私有成员。
积累的构造函数和析构函数也不能继承。
对于你说的这句话“派生类中的构造函数还要写出基类构造函数中需要的参数”你说的是继承中出现的一个规定:
c++ 中规定 当派生类函数构造函数初始化时,必须同时对基类构造函数初始化。请看这个例子:然后你运行一下,然后再考虑一下,
#include<iostream.h>
class Counter
{
public:
Counter(){val=0;cout<<"Default Constructor of Counter"<<endl;}
Counter(int x){val=x;cout<<"Coustructor of Counter:"<<val<<endl;}
~Counter(){cout<<"Destructor of counter:"<<val<<endl;}
private:
int val;
};
class Example
{
public:
Example(){ val=0;cout<<"Default Constructor of Example"<<endl;}
Example(int x):
c2(x){val=x,cout<<"Constructor of Example:"<<val<<endl;}
~Example(){cout<<"Destructor of Example:"<<val<<endl;}
void Print(){cout<<"value="<<val<<en