| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1024 人关注过本帖
标题:关于虚函数
只看楼主 加入收藏
吻舞双全
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-27
收藏
 问题点数:0 回复次数:11 
关于虚函数

各位,小弟虚函数不好,请大家来看看
4个文件
animal.h
#include <iostream.h>
#include <string.h>
class animal
{
char *pp=new char[20];
public:
animal(char *);
virtual ~animal();
virtual void fn();
};
animal::animal(char *Tp="noname")
{
strcpy(pp,Tp);
}
void animal::fn(){cout<<"animal can swell"<<endl;}
animal::~animal()
{
delete pp;
cout<<"animal will dead"<<endl;
}
dog.h
#include <iostream.h>
#include <string.h>
#ifndef ANIMAL
#define ANIMAL
#include "animal.h"
#endif
class dog: pubilc animal
{
int m_age=new int;
public:
dog(char *);
virtual ~dog();
virtual void fn();
};
dog::dog(int tm_age=0):animal("noname")
{
m_age=tm_age;
}
void dog::fn(){cout<<"dog can swell"<<endl;}
dog::~dog()
{
delete m_age;
cout<<"dog will dead"<<endl;
}
cat.h
#include <iostream.h>
#include <string.h>
#ifndef ANIMAL
#define ANIMAL
#include "animal.h"
#endif
class cat: pubilc animal
{
int m_age=new int;
public:
cat(char *);
virtual ~cat();
virtual void fn();
};
cat::cat(int tm_age=0):animal("noname")
{
m_age=tm_age;
}
void cat::fn(){cout<<"cat can swell"<<endl;}
cat::~cat()
{
delete m_age;
cout<<"cat will dead"<<endl;
}
main.cpp
#include <iostream.h>
#include "cat.h"
#include "dog.h"
void text (animal &tt);
void main()
{
animal n1;
dog n2;
cat n3;

}
void text (animal &tt)
{
tt.fn();
}
请帮忙

搜索更多相关主题的帖子: animal 函数 char include 
2006-06-01 12:43
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
找错误比改错误难,建议先说哪错误,哪有问题,哪不明白!

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-01 12:54
吻舞双全
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-27
收藏
得分:0 

那个new,怎么总说是'=0'

哪位能细心的帮忙改一下呀

2006-06-01 12:57
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你把你一楼的程序编辑一下,找得麻烦,在有问题的地方的右边//注释问题

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-01 13:06
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 
class animal
{
char *pp;
public:
animal(char *);
virtual ~animal();
virtual void fn();
};
animal::animal(char *Tp="noname")
{
pp=new char [20];
strcpy(pp,Tp);
}
void animal::fn(){cout<<"animal can swell"<<endl;}
animal::~animal()
{
delete pp;
cout<<"animal will dead"<<endl;
}
这样就不会说了!

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2006-06-01 16:48
吻舞双全
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-27
收藏
得分:0 
呵呵
能不能说一下为什么呀
2006-06-01 20:23
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 

不能在类声明中将数据成员初始化


2006-06-01 20:27
吻舞双全
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-27
收藏
得分:0 

明白了
是不是那里不分配空间呀
可还有错误
斑竹有空么
2006-06-01 20:31
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 
class cat: public animal

2006-06-01 20:43
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用吻舞双全在2006-6-1 12:43:00的发言:

各位,小弟虚函数不好,请大家来看看
4个文件
animal.h
#include <iostream.h>
#include <string.h>
class animal
{
char *pp;
public:
animal(char *);
virtual ~animal();
virtual void fn();
};
animal::animal(char *Tp="noname")
{
pp=new char[20];//说的对,不能分配空间在那里,这不是初始化
strcpy(pp,Tp);
}
void animal::fn(){cout<<"animal can swell"<<endl;}
animal::~animal()
{
delete pp;
cout<<"animal will dead"<<endl;
}
dog.h
#include <iostream.h>
#include <string.h>
#ifndef ANIMAL
#define ANIMAL
#include "animal.h"
#endif
class dog: public animal
{
int m_age;
public:
dog(int);
virtual ~dog();
virtual void fn();
};
dog::dog(int tm_age=0):animal("noname")
{
m_age=new int;
m_age=tm_age;
}
void dog::fn(){cout<<"dog can swell"<<endl;}
dog::~dog()
{
delete m_age;
cout<<"dog will dead"<<endl;
}
cat.h
#include <iostream.h>
#include <string.h>
#ifndef ANIMAL
#define ANIMAL
#include "animal.h"
#endif
class cat: public animal
{
int m_age;
public:
cat(int);
virtual ~cat();
virtual void fn();
};
cat::cat(int tm_age=0):animal("noname")
{
m_age=new int;
m_age=tm_age;
}
void cat::fn(){cout<<"cat can swell"<<endl;}
cat::~cat()
{
delete m_age;
cout<<"cat will dead"<<endl;
}
main.cpp
#include <iostream.h>
#include "cat.h"
#include "dog.h"
void text (animal &tt);
void main()
{
animal n1;
dog n2;
cat n3;
text(n1);
text(n2);
text(n3);//在干什么?

}
void text (animal &tt)
{
tt.fn();
}
请帮忙

你编译一下吧,看行不行.我这没条件


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-01 20:49
快速回复:关于虚函数
数据加载中...
 
   



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

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