返回信息流#include "iostream"
using namespace std;
class A{
public:
virtual void print()
{
cout<<"A"<<endl;
}
};
class B:public A{
public:
void print ()
{
cout<<"B"<<endl;
}
};
void main()
{
A a,*pa;
B b,*pb;
pa=&b;pa->print();
pb=(B*)&a;pb->print();//不能将基类的地址初始化派生类的指针,为什么这个地方可以啊?没有出现任何错误?
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #40491同步于 2010/6/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
求关于C++类的对象的问题,还有就是C++中内存被分为哪四个部分
challenge
2010/6/15镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 a206206 的大作中提到: 】
: 你强制转换了,如果A里没有print函数那你就悲剧了。。。
: --
: 黑暗凝集灵魂,堕落方能自由
: ...................
RE
内存分为好的和坏的,还分为你的和不是你的,正好四部分
【 在 challenge (蜀国游侠) 的大作中提到: 】
: 哦哦 , 那另外一个问题呢? 内存分为哪四个部分~~?
【 在 FadeToBlack 的大作中提到: 】
: 内存分为好的和坏的,还分为你的和不是你的,正好四部分
: 【 在 challenge (蜀国游侠) 的大作中提到: 】
: : 哦哦 , 那另外一个问题呢? 内存分为哪四个部分~~?
: ...................
男的女的也加上把。。。。
你这是很标准的多态,没有任何问题啊
四个区是:静态区(全局变量、静态变量)、指读数据区(比如说字符串)、堆(malloc出的空间)、栈(自动变量区)
还应该外带一个代码区,存放函数代码和立即数