美文网首页
c++之多文件结构

c++之多文件结构

作者: Thinkando | 来源:发表于2018-10-06 14:32 被阅读9次
  • 一个c++程序,一般都由三个部分来构成的:类的定义,类的成员的实现和主函数。
  • 一个项目(至少)由三个文件组成:定义类文件(*.h 或者 .hpp),类实现文件(.cpp 文件),类使用文件(主函数文件 *.cpp)

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

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

相关文章

  • c++之多文件结构

    一个c++程序,一般都由三个部分来构成的:类的定义,类的成员的实现和主函数。 一个项目(至少)由三个文件组成:定义...

  • tinyxml 库

    C++读取xml配置文件 - tinyxml2tinyxml基本结构xml文件示例类结构demo C++读取xml...

  • C++之多文件编程实战

    转载:原文链接作为一个小白,我对于自己是无语的!菜的一批,写C++应该也有两年了,但是还不知道如何将一个单文件的长...

  • C++学习笔记

    1、文件结构 每个C++/C程序通常分为两个文件: a、用于保存程序的声明(declaration),称为头文件。...

  • C++学习笔记(二)头文件与定义文件

    1、C++/C程序文件结构:头文件(.h文件,用于保存程序的声明)+定义文件(.cpp/.c文件,程序的实现) 2...

  • ios的本质

    ios对象本质是转换为c++的结构体 可以把main函数编译为c++的文件 跳转到mian函数的文件位置 2.编译...

  • 高质量C++/C编程指南

    1 文件结构 每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件...

  • Block2

    1.clang -rewrite-objc 源代码文件名 -> C++源代码 C++源代码 自动变量会追加到结构体...

  • iOS-结构体(Struct)结构体头文件多次被引用报错

    问题描述:iOS--Socket开发中,直接拿c++的结构体文件使用,导致多次引用这个文件报错。(开发工程中使用没...

  • 命令行编译C++/C文件

    编译C文件用GCC 编译C++文件(包括.C/C++文件)用G++ 编译C++文件常用方法: 单个文件: g++ ...

网友评论

      本文标题:c++之多文件结构

      本文链接:https://www.haomeiwen.com/subject/jnkhaftx.html