基类指针引用派生类对象

简介:

#include<iostream>

#include<cstring>

using namespace std;

class A{

char name[20];

public:

void put_name(char *n){ strcpy_s(name, n); }

void get_name()const{

cout << name << endl;

};

};

class B:public A{

char num[20];

public:

void put_num(char *n){ strcpy_s(num, n); }

void get_num()const{

cout << num << endl;

}

};

int main(){

A *A_point;

A A_obj;

B *B_point;

B B_obj;

A_point = &A_obj;

A_point->put_name("li ming");

A_point->get_name();

//B_point = &A_obj;派生类的指针无法引用基类的对象

A_point = &B_obj;//基类指针却可以引用派生类对象

A_point->put_name("wu lei");

A_point->get_name();

//注意基类指针只可以使用自己基类的函数

//例如

//A_point->put_num("1111");错误!

((B *)A_point)->put_name("0370 - 2815645");

//把指针类型显示转换成派生类就可以调用派生类的成员

((B *)A_point)->get_name();

system("pause");

return 0;

}


本文转自 神迹难觅 51CTO博客,原文链接:http://blog.51cto.com/ji123/1917074,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
86 4
|
2月前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
43 2
|
2月前
对象指针输出时分秒
对象指针输出时分秒
10 0
|
4月前
|
编译器 C++
virtual类的使用方法问题之在C++中获取对象的vptr(虚拟表指针)如何解决
virtual类的使用方法问题之在C++中获取对象的vptr(虚拟表指针)如何解决
101 4
|
5月前
|
存储 安全 C++
浅析C++的指针与引用
虽然指针和引用在C++中都用于间接数据访问,但它们各自拥有独特的特性和应用场景。选择使用指针还是引用,主要取决于程序的具体需求,如是否需要动态内存管理,是否希望变量可以重新指向其他对象等。理解这二者的区别,将有助于开发高效、安全的C++程序。
38 3
|
6月前
|
存储 安全 编译器
【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
69 5
|
6月前
|
Java
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
49 3
|
6月前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
29天前
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
101 13
|
2月前
|
C语言
无头链表二级指针方式实现(C语言描述)
本文介绍了如何在C语言中使用二级指针实现无头链表,并提供了创建节点、插入、删除、查找、销毁链表等操作的函数实现,以及一个示例程序来演示这些操作。
36 0