找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1546|回复: 9

[求助]"类"

[复制链接]
发表于 2009-11-3 02:53:54 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include<iostream.h>
class cshape
{
public:
cshape();
virtual int area()=0;
virtual void setshape(int number)=0;
~cshape();
private:
int number;
};
void cshape::setshape(int number)
{
switch(number)
{
case 1:cout<<"It is a triangle"<<endl;break;
case 2:cout<<"It is a crect"<<endl;break;
case 3:cout<<"It is a circle"<<endl;break;
};
}
class ctriangle:public cshape
{
public:
ctriangle();
float triangle(float het,float bot){
return ((float)(0.5*het*bot));
};
~ctriangle();
};
class ccrect:public cshape
{
public:
ccrect();
float crect(float size1,float size2){
return (size1*size2);
};
~ccrect();
};
class ccircle:public cshape
{
public:
ccircle();
double circle(float line){
return (3.14159*line);
};
~ccircle();
};
int main()
{
cshape *pshape;
ctriangle *a;
cout<<a->triangle(3,3)<<endl;
pshape->setshape(1);

ccrect *b;
cout<<b->crect(2,3)<<endl;

ccircle *c;
cout<<c->circle(3.5)<<endl;

cout<<a->triangle(3,3)+b->crect(2,3)+c->circle(3.5)<<endl;
return 0;
}

在这有一个运行错误问题,应该怎样改正呢.
发表于 2009-11-3 02:53:57 | 显示全部楼层 IP:江苏扬州
你的基类中的纯虚函数在派生类中没有重定义?
回复

使用道具 举报

发表于 2009-11-3 02:54:01 | 显示全部楼层 IP:江苏扬州
没见过定义纯虚函数
更没见过调用纯虚函数的~!
回复

使用道具 举报

发表于 2009-11-3 02:54:02 | 显示全部楼层 IP:江苏扬州
纯虚函数和函数的调用差不多的啊
回复

使用道具 举报

发表于 2009-11-3 02:54:03 | 显示全部楼层 IP:江苏扬州
就是这个错误,不过是在程序运行的时候
no matching symbolic information found.
回复

使用道具 举报

发表于 2009-11-3 02:54:04 | 显示全部楼层 IP:江苏扬州
试试这个
#include<iostream>
using namespace std;
class cshape
{
public:

int area(){};
void setshape(int number);
virtual ~cshape()=0;
private:
int number;
};
cshape::~cshape() {}
void cshape::setshape(int number)
{
switch(number)
{
case 1:cout<<"It is a triangle"<<endl;break;
case 2:cout<<"It is a crect"<<endl;break;
case 3:cout<<"It is a circle"<<endl;break;
};

}
class ctriangle:public cshape
{
public:

float triangle(float het,float bot){
return ((float)(0.5*het*bot));
};


};
class ccrect:public cshape
{
public:

float crect(float size1,float size2){
return (size1*size2);
};


};
class ccircle:public cshape
{
public:

double circle(float line){
return (3.14159*line);
};


};
int main()
{
cshape *pshape = new ctriangle;

ctriangle *a = new ctriangle;
cout<<a->triangle(3,3)<<endl;
pshape->setshape(1);

ccrect *b = new ccrect;
cout<<b->crect(2,3)<<endl;

ccircle *c=new ccircle;
cout<<c->circle(3.5)<<endl;

cout<<a->triangle(3,3)+b->crect(2,3)+c->circle(3.5)<<endl;
delete a;
delete b;
delete c;
system("pause");
return 0;


}
回复

使用道具 举报

发表于 2009-11-3 02:54:05 | 显示全部楼层 IP:江苏扬州
以下是引用wfpb在2006-6-1 18:09:00的发言:
没见过定义纯虚函数
更没见过调用纯虚函数的~!
必须为纯虚析构函数提供一个函数体
回复

使用道具 举报

发表于 2009-11-3 02:54:06 | 显示全部楼层 IP:江苏扬州
必须在派生类中为纯虚函数提供一个函数体
这点我知道,只是在书上没见过调用纯虚函数的,都是看到有纯虚函数的类都是不被用的类,只被继承的,要用也都用的是派生类
回复

使用道具 举报

发表于 2009-11-3 02:54:07 | 显示全部楼层 IP:江苏扬州
必须为纯虚析构函数提供一个函数体
回复

使用道具 举报

发表于 2009-11-3 02:54:08 | 显示全部楼层 IP:江苏扬州
他好象没用纯虚析构函数列
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 11:35 , Processed in 0.208184 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表