//point.h
#include <iostream.h>
#ifndef POINT
#define POINT
class point
{
int x,y;
public:
void set_xy(int a,int b)
{
x=a;
y=b;
}
int get_x()
{
cout<<x<<endl;
return x;
}
int get_y()
{
cout<<y<<endl;
return y;
}
};
#endif
//circle.h
#include <iostream.h>
#ifndef CIRCLE
#define CIRCLE
class circle:public point
{
int radius;
public:
void set_radius(int r)
{
radius=r;
}
int get_radius()
{
cout<<radius<<endl;
return radius;
}
};
#endif
//main
#include <iostream.h>
#include "point.h"
#include "circle.h"
int main()
{
point pt;
pt.set_xy(1,2);
pt.get_x();
pt.get_y();
circle cl;
cl.set_xy(3,4);
cl.set_radius(100);
cl.get_x();
cl.get_y();
cl.get_radius();
return 0;
}
请问,派生类对象cl中继承于基类的set_xy()函数与基类对象pt中的set_xy()函数在内存模型中是否只有一个拷贝?换句话说派生类对象继承于基类的成员函数和基类对象中的对应成员函数在整个程序中共享一段代码?再换句话说不论派生类对象还是基类对象指向这些函数的指针(不是说this指针)都是一样的?
注意,我说的是内存模型。
[此贴子已经被作者于2007-1-2 13:54:20编辑过]