c++之多文件结构

2018-10-06  本文已影响9人  Thinkando

本篇实现,如何将一个文件编变成一个项目

1. Point.cpp

#include <iostream>
using namespace std;
class Point //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);   //定义对象a,其构造函数会使count 加1
    cout<<"Point A,"<<a.GetX()<<","<<a.GetY();
    a.showCount();   //输出对象号,对象名引用,等价于Point::showCount()
    Point b(a); //定义对象b,其构造函数会使count 加1
    cout<<"Point B,"<<b.GetX()<<","<<b.GetY();
    Point::showCount();  //输出对象个数
    
    return 0;
}
Point A,4,5 Object count=1
Point B,4,5 Object count=2
Program ended with exit code: 0

2. 拆分

  1. ponit.h
//文件1,类的定义,point.h
class Point{
public:
    Point(int x=0, int y=0) :x(x), y(y){}
    Point(const Point &p);
    ~Point(){  count--; }    //析构函数,程序运行完,释放内存
    int GetX() {return x;}
    int GetY() {return y;}
    static void showCount();
private:    //私有数据成员
    int x,y;
    static int count;  //静态数据成员,用于记录点的个数
};
  1. point.cpp
//文件二,类的实现
#include "point.h"
#include <iostream>
using namespace std;

int Point::count=0;

Point::Point(const Point &p):x(p.x),y(p.y){ //复制构造函数体
    count++;
}
void Point::showCount(){
    cout<<" Object count="<<count<<endl;
}
  1. main.cpp
//文件三,主函数
#include "point.h"
#include <iostream>
using namespace std;

int main(){
    Point a(4,5);   //定义对象a,其构造函数会使count 加1
    cout<<"Point A,"<<a.GetX()<<","<<a.GetY();
    a.showCount();   //输出对象号,对象名引用,等价于Point::showCount()
    Point b(a); //定义对象b,其构造函数会使count 加1
    cout<<"Point B,"<<b.GetX()<<","<<b.GetY();
    Point::showCount();  //输出对象个数
    return 0;
}
Point A,4,5 Object count=0
Point B,4,5 Object count=1
Program ended with exit code: 0
上一篇下一篇

猜你喜欢

热点阅读