1 / 61
文档名称:

02 类和对象的更多内容.ppt

格式:ppt   大小:667KB   页数:61页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

02 类和对象的更多内容.ppt

上传人:840122949 2017/10/13 文件大小:667 KB

下载得到文件列表

02 类和对象的更多内容.ppt

文档介绍

文档介绍:第2章类和对象的更多内容
主要内容
实例成员和静态成员
析构函数
拷贝构造函数
调用构造函数和析构函数的顺序
对象与函数
无名对象
友元函数和友元类
实例研究
小结和作业
2
课件制作
实例成员和静态成员
实例变量
与类的特定对象联系在一起;
同一个类的不同对象,实例变量数据域是不同的,而且也不共享
3
课件制作
实例成员和静态成员
静态数据成员
在不使用全局对象的情况下,如果希望一个类的所有对象共享某些数据成员,可以通过声明该数据成员为静态存储类型来实现
静态数据成员是一种特殊的数据成员,它以关键字static 开头
静态数据成员的值在各对象中是一样的,它为各对象所共有,而不只属于某个对象的成员
class Circle
{
public:
Circle();
Circle(double r);
double getArea();
int getNumberOfObjects();
private:
double radius;
static int numberOfObjects;
};
4
课件制作
实例成员和静态成员
//file:
class Circle
{
public:
Circle();
Circle(double);
double getArea();
double getRadius();
void setRadius(double);
int getNumberOfObjects();
private:
double radius;
static int numberOfObjects;
};
//file:
#include ""
const double PI=;
int Circle::numberOfObjects = 0;
// Construct a circle object
Circle::Circle()
{
radius = 1;
numberOfObjects++;
}
// Construct a circle object
Circle::Circle(double radius)
{
this->radius = radius;
numberOfObjects++;
}
// Return the area of this circle
double Circle::getArea()
{
return radius * radius * PI;
}
// Return the radius of this circle
double Circle::getRadius()
{
return radius;
}
// Set a new radius
void Circle::setRadius(double radius)
{
this->radius = (radius >= 0) ? radius : 0;
}
// Return the number of circle objects
int Circle::getNumberOfObjects()
{
return numberOfObjects;
}
静态成员初始化
静态成员访问
5
课件制作
实例成员和静态成员
//file:
#include <iostream>
using namespace std;
#include ""
int main()
{
Circle circle1;
cout << "The area of the circle of radius " << () << " is " << () << endl;
cout << "Number of circle objects created: " << () << endl;
Circle circle2();
cout << "The area of the circle of radius " << () << " is " << () << endl;
cout << "Number of circle objects created: " << () << endl;
();
co