C++新手上路第四天 静态Point
2016-12-20 11:31
176 查看
具有静态数据成员的Point类
#include "stdafx.h"
#include <iostream>
using namespace std;
class Point
{
public:
//构造函数的声明,将count计数器++,每调用一次构造函数就加一次
Point(int xx = 0,
int yy = 0);
//复制构造函数的声明,将count计数器++,每调用一次构造函数就加一次
Point(Point &p) {
x = p.x;
y = p.y;
count++;
}
~Point() { count--; }//析构函数消除对象count自动减一
int Getx() {
return x; }
int Gety() {
return y; }
void ShowCount() {//显示静态成员的函数
cout << " Object count=" << count
<< endl;
}
private:
int x, y;
static int count;//定义静态的成员
};
//构造函数的实现
Point::Point(int xx,
int yy)
{
x = xx;
y = yy;
count++;
}
int Point::count = 0;//静态成员变量的定义和初始化,使用类名调用
int main()
{
Point a(4, 5);//定义对象会调用一次构造函数
cout << "Point A:" << a.Getx()
<< "," << a.Gety();//输出point的x和y
a.ShowCount();//输出count
Point b(a);//使用复制构造函数定义对象b,会调用复制构造函数,是count加一
cout << "Point B:" << b.Getx()
<< "," << b.Gety();
b.ShowCount();
return 0;
}
具有静态函数成员的Point类
#include "stdafx.h"
#include<iostream>
using namespace std;
class Point
{
public:
Point(int x = 0,
int y = 0) :x(x), y(y)
{
count++;
}
Point(Point &p) {
x = p.x;
y = p.y;
count++;
}
~Point() { count-- };
int Getx() {
return x; }
int Gety() {
return y; }
static void ShowCount() {//静态成员
cout << " Object count =" << count
<< endl;
}
private:
int x, y;
static int count;//静态数据成员
};
int Point::count = 0;//静态数据成员的初始化
int main()
{
Point a(4, 5);
cout << "Point A:" << a.Getx()
<< "," << a.Gety();
Point::ShowCount();//输出count个数,不使用对象调用使用类::函数名调用
Point b(a);
cout << "Point B:" << b.Getx()
<< "," << b.Gety();//不依赖对象直接访问静态数据
Point::ShowCount();
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
class Point
{
public:
//构造函数的声明,将count计数器++,每调用一次构造函数就加一次
Point(int xx = 0,
int yy = 0);
//复制构造函数的声明,将count计数器++,每调用一次构造函数就加一次
Point(Point &p) {
x = p.x;
y = p.y;
count++;
}
~Point() { count--; }//析构函数消除对象count自动减一
int Getx() {
return x; }
int Gety() {
return y; }
void ShowCount() {//显示静态成员的函数
cout << " Object count=" << count
<< endl;
}
private:
int x, y;
static int count;//定义静态的成员
};
//构造函数的实现
Point::Point(int xx,
int yy)
{
x = xx;
y = yy;
count++;
}
int Point::count = 0;//静态成员变量的定义和初始化,使用类名调用
int main()
{
Point a(4, 5);//定义对象会调用一次构造函数
cout << "Point A:" << a.Getx()
<< "," << a.Gety();//输出point的x和y
a.ShowCount();//输出count
Point b(a);//使用复制构造函数定义对象b,会调用复制构造函数,是count加一
cout << "Point B:" << b.Getx()
<< "," << b.Gety();
b.ShowCount();
return 0;
}
具有静态函数成员的Point类
#include "stdafx.h"
#include<iostream>
using namespace std;
class Point
{
public:
Point(int x = 0,
int y = 0) :x(x), y(y)
{
count++;
}
Point(Point &p) {
x = p.x;
y = p.y;
count++;
}
~Point() { count-- };
int Getx() {
return x; }
int Gety() {
return y; }
static void ShowCount() {//静态成员
cout << " Object count =" << count
<< endl;
}
private:
int x, y;
static int count;//静态数据成员
};
int Point::count = 0;//静态数据成员的初始化
int main()
{
Point a(4, 5);
cout << "Point A:" << a.Getx()
<< "," << a.Gety();
Point::ShowCount();//输出count个数,不使用对象调用使用类::函数名调用
Point b(a);
cout << "Point B:" << b.Getx()
<< "," << b.Gety();//不依赖对象直接访问静态数据
Point::ShowCount();
return 0;
}