派生类对象有基类对象的所有成员变量以及成员函数吧!可能还有基类没有的成员变量或成员函数吧!你将基类对象赋值给派生类后,如果你这个派生类访问基类没有的成员变量或者成员函数就报错了,所以将基类赋值给派生类是非常危险的,不是不能是不建议。
class A{
public:
int c;
}
A a ; a.c=5;//可以
class A{
int c;
}
A a ; a.c=5;//不可以,因为c是私有的。
class A{
public:
set_c(int a){c =a;}
private:
int c;
}
A a; a.set_c(5); //调用函数给c赋值。
类外给类的私有或者保护成员不能赋值,public公有成员可以。
赋值方式:
MyClass my;
my.m_int = 0;
数据成员私有,不能在类外定义