标题:虚函数的请教(我概念没理解透)
取消只看楼主
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
结帖率:100%
 问题点数:0 回复次数:0 
虚函数的请教(我概念没理解透)

程序如下:
#include<iostream.h>
#include<string.h>

class a
{
public:
a(){}

a(char *q)
{
p=new char[strlen(q)+1];
strcpy(p,q);
}

a(const a &other)
{
this->p=new char[strlen(other.p)+1];
strcpy(this->p,other.p);
}

~a()
{
delete p;
}

virtual void disp()
{
cout<<p<<endl;
}

private:
char *p;
};

class b:public a
{

public:
b(){}

b(char *m,char *n):a(m)
{
s=new char[strlen(n)+1];
strcpy(s,n);
}

b(const b &other)
{
s=new char[strlen(other.s)+1];
strcpy(s,other.s);
}

~b()
{
delete s;
}

void disp()
{
cout<<s<<endl;
}
private:
char *s;
};

int main()
{
a m("123");
b n("789","456");
a *p=&m;
p->disp();
p=&n;
p->disp();
return 0;
}

定义了m是123 再在n中初始化后 为什么没变成789啊
怎么才能变成789啊?
请大家把我问题的本质讲一讲吧 我对概念还不太理解
谢谢大家了

搜索更多相关主题的帖子: 函数 概念 char strcpy include 
2006-07-10 10:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-77488-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.897546 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved