#include
using namespace std;
class Shape
{
public:
virtual double area()=0;
};
class Circle:public Shape
{
public:
Circle(double r):R(r) {}
virtual double area()
{
...
分类:
其他好文 时间:
2014-06-05 03:40:40
阅读次数:
219
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class
Cman{public:virtu...
分类:
其他好文 时间:
2014-05-30 02:11:58
阅读次数:
253
前不久在C++板块请教过这样一个问题:“多个基类中相同的纯虚函数,只需在派生类中实现一次”是否是标准行为。这个问题直到现在我也还没能确定,不过我在VC2005、VC2008和g++上都试过,该特性在所有这些编译器上都可以正常工作,所以应该八九不离十了。另外,记得当时星星有“语法正确逻辑说不过去”一....
分类:
其他好文 时间:
2014-05-28 20:19:02
阅读次数:
354
#define CC_UNUSED_PARAM(unusedparam)
(void)unusedparam这个宏完全没有执行任何命令,这样写的原因主要是历史遗留原因,ojb-c不存在纯虚函数并且传入参数不使用编译器会发出警告,这样用一个宏既可以防止警告也有一定的解释作用。
分类:
其他好文 时间:
2014-05-26 16:18:20
阅读次数:
775
面向对象编程--再谈文本查询示例[续/习题]//P522 习题15.41
//1 in TextQuery.h
#ifndef TEXTQUERY_H_INCLUDED
#define TEXTQUERY_H_INCLUDED
#include
#include
#include
#include
#include
#include
#include
#include
usin...
分类:
编程语言 时间:
2014-05-18 18:41:59
阅读次数:
454
面向对象编程--纯虚函数、容器与继承I.纯虚函数 在函数形参后面写上 =0 以指定纯虚函数:class Disc_item : public Item_base
{
public:
double net_price(size_t) const = 0; //指定纯虚函数
};
将函数定义为纯虚函数能够说明,该函数为后代类型提供了可以覆盖的接口,但是这个类的版本绝不会调用。重要的是,用户将不...
分类:
编程语言 时间:
2014-05-15 05:50:43
阅读次数:
316
1
.虚函数假设people是man的父类,people类和man类都定义了实函数walk()people* p = new
man();p->walk();这里P执行的是people类的walk()函数。这和java语言不一样,java在这里执行的是man的walk()函数。那么C++如何实现子类...
分类:
编程语言 时间:
2014-05-08 09:30:01
阅读次数:
349
在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。
分类:
其他好文 时间:
2014-04-29 20:30:37
阅读次数:
441
#include class base {public: virtual void v() const
= 0; virtual void f() const = 0 { // 纯虚函数也有实现内容,但子类仍然必须实现这个虚函数 cout <<
"base::f()\n"; }};voi...
分类:
其他好文 时间:
2014-04-27 23:47:48
阅读次数:
561
在public继承中,(public 继承表示的关系是 “is a ” 的关系),其类中定义的函数主要有三类:pure virtual函数,impure virtual函数以及non-virtual函数,这三种函数决定了public继承中的两个重要概念 : “ 函数接口继承” 以及 “函数实现继承”。那么接下来将针对这样一个不简单的问题做一些简介。
考虑如下的类定义:
class Shape...
分类:
其他好文 时间:
2014-04-27 18:29:13
阅读次数:
526