#pragma once
class Cube
{
public:
Cube();
~Cube();
void set(double x); //设置边长
double getVolume(); //求体积
static void displayNumOfObject();//显示对象数量
private:
double m_x; //边长
static int numOfObject; //数量
};
#include "stdafx.h"
#include "Cube.h"
#include <iostream>
using namespace std;
//静态成员变量定义和初始化
int Cube::numOfObject = 0;
Cube::Cube()
{
m_x = 0;
numOfObject++; //每创建一个对象,数量加1
}
Cube::~Cube()
{
numOfObject--; //销毁对象时,数量减1
}
void Cube::set(double x) //设置边长
{
m_x = x;
}
double Cube::getVolume() //求体积
{
return m_x*m_x*m_x;
}
void Cube::displayNumOfObject()//显示对象数量
{
cout << "对象数量: " << numOfObject << endl;
}
主程序:
// MyCubeExample.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "Cube.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Cube cubeA, *pCubeB = NULL;
pCubeB->displayNumOfObject(); //显示1
cout << "cubeA的体积是:" << cubeA.getVolume() << endl;//输出0^3 = 0
cubeA.set(3);
cout << "cubeA的体积是:" << cubeA.getVolume() << endl; //输出3^3 = 27
pCubeB = new Cube();
Cube::displayNumOfObject(); //显示2
delete pCubeB;
Cube::displayNumOfObject(); //显示1
cubeA.displayNumOfObject(); //显示1
getchar();
return 0;
}
运行结果: