关于基类对派生类的访问
#include <iostream>
using namespace std;
class base
{
public:
base(const int&m,const int &n):x(m),y(n){}
base(const base& t){
x=t.x;
y=t.y;
z=t.z;
}
virtual void display(){
cout << x << ' ' << y << ' ' << z << endl;
}
virtual ~base(){};
protected:
int x;
int y;
private:
int z;
};
class derived:public base
{
public:
derived(const int&m,const int&n,const int&p):base(m,n),z(p){}
void display(){
cout << x << ' ' << y << ' ' << z << endl;
}
int z;
};
int main()
{
derived tb(5,7,8);
base ta(tb);
ta.display();
tb.display();
cout << tb.z;
system("pause");
}
为什么在派生类转换为基类中,基类的成员函数能对派生类的protected的成员访问.
却不能对public中的z成员访问(z无法初始化).
using namespace std;
class base
{
public:
base(const int&m,const int &n):x(m),y(n){}
base(const base& t){
x=t.x;
y=t.y;
z=t.z;
}
virtual void display(){
cout << x << ' ' << y << ' ' << z << endl;
}
virtual ~base(){};
protected:
int x;
int y;
private:
int z;
};
class derived:public base
{
public:
derived(const int&m,const int&n,const int&p):base(m,n),z(p){}
void display(){
cout << x << ' ' << y << ' ' << z << endl;
}
int z;
};
int main()
{
derived tb(5,7,8);
base ta(tb);
ta.display();
tb.display();
cout << tb.z;
system("pause");
}
为什么在派生类转换为基类中,基类的成员函数能对派生类的protected的成员访问.
却不能对public中的z成员访问(z无法初始化).
...全文
相关推荐
C++基类指针和派生类指针之间的转换方法讲解
今天小编就为大家分享一篇关于C++基类指针和派生类指针之间的转换方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
继承后基类、派生类的访问属性
一、单继承与多继承(1)一个派生类只从一个基类派生,这称为单继承(single inheritance);(2)一个派生类有两个或多个基类的称为多重继承(multiple inheritance);(注意:区分多重继承和多级派生的概念)二、声明派生类的方式(1)声明派生类的一般形式为: class 派生类名:[继承方式] 基类名 { 派生类新增加的成员
C++ 继承 基类、派生类、访问权限
9.1 基类与派生类 被继承的类称为父类或基类,继承的类称为子类或派生类。 “子类”和“父类”通常放在一起称呼,“基类”和“派生类”通常放在一起称呼。 派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。 使用继承的场景: 创建的新类只是比原有类多出若干成员变量或成员函数时,可以使用继承,这样会减少代码量,新类也会拥有基类的所有功能。 需要创建多个类,这类有相似的成员变量或成...
解析C++中派生的概念以及派生类成员的访问属性
主要介绍了解析C++中派生的概念以及派生类成员的访问属性,是C++入门学习中的基础知识,需要的朋友可以参考下
深入分析C++派生类中的保护成员继承
主要介绍了C++派生类中的保护成员继承,深入对C++面向对象编程的继承机制进行了解析,需要的朋友可以参考下


