-
子类可以赋值给父类,反之不可,父类指针可以指向子类,反之不可,但父类指针只想子类对象时只可以访问子类中继承过来的父类成员
查看全部 -
宏定义解决重定义
#ifndef
#define
#endif
查看全部 -
当子类中有与父类同名的数据成员与成员函数,继承过来的父类的成员都会被隐藏,隐藏后的成员可用访问限定符来访问
查看全部 -
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;/**
* 定义人的类: Person
* 数据成员姓名: m_strName
* 成员函数: eat()
*/
class Person
{
public:
string m_strName;
void eat()
{
cout << "eat" << endl;
}
};/**
* 定义士兵类: Soldier
* 士兵类公有继承人类: public
* 数据成员编号: m_strCode
* 成员函数: attack()
*/
class Soldier:public Person
{
public:
string m_strCode;
void attack()
{
cout << "fire!!!" << endl;
}
};int main(void)
{
// 创建Soldier对象
Soldier sor;
// 给对象属性赋值
sor.m_strName = "Jim";
sor.m_strCode = "592";
// 打印对象属性值
cout << sor.m_strName << endl;
cout << sor.m_strCode << endl;
// 调用对象方法
sor.attack();
sor.eat();return 0;
}查看全部 -
保护继承,保护成员函数play()不能由对象直接访问
查看全部 -
public继承父类私有成员函数,子类成员函数不可访问查看全部
-
子类对象可以通过父类的拷贝构造函数给父类对象初始化,父类的指针可以指向子类的对象,但是只能访问到父类自己有的成员。
查看全部 -
私有继承后父类对象的public和protected成员被继承到子类的private下,类似于在子类中定义了一个父类的私有对象成员。这两种方式都被称为has-a
查看全部 -
父类与子类函数或成员重名时,子类直接用函数名或变量名调用会调用子类的函数或成员。想要调用父类的必须用 “父类名::函数名或变量名”的方式调用
查看全部 -
无论何种继承方式,子类都不可访问父类的私有成员
查看全部 -
public继承方式:
private无法访问
protected继承到protected下
public继承到public下
查看全部 -
C++中可以使用宏定义来解决重定义问题:
#ifndef 头文件宏名
#define 头文件宏名
.
.
.
#endif
查看全部 -
当把一个类对象作为函数的参数传入时,函数的参数最好使用引用型或指针型,因为这样做不会调用该类的拷贝构造函数和虚析构函数,故效率更高。
查看全部 -
当基类与派生类具有同名成员函数且派生类可继承基类的该同名成员函数时,无论两者的参数是否不同,基类的同名成员函数都会被隐藏。
查看全部 -
公有继承:基类的public成员、protected成员、private成员分别被继承 为派生类的public成员、protected成员、无法访问
保护继承:基类的public成员、protected成员、private成员分别被继承 为派生类的protected成员、protected成员、无法访问
私有继承:基类的public成员、protected成员、private成员分别被继承 为派生类的private成员、private成员、无法访问
查看全部
举报