• C++ compile multiple cpp and header files via I. cpp1.cpp cpp2.cpp o


    1.The first header file.

    //DynamicArray.h
    #include <cassert> #include <stdio.h> #include <stdlib.h> using namespace std; class DynamicArray { private: int _size; int _max; int *_arrayHolder; public: DynamicArray(); ~DynamicArray(); int size(); int &operator[](int i); void add(int n); void printArray(); };

    2.The first source file

    //DynamicArray.cpp
    #include <DynamicArray.h> DynamicArray::DynamicArray() { this->_size=0; this->_max=5; this->_arrayHolder=new int[5]; } DynamicArray::~DynamicArray() { delete[] this->_arrayHolder; } int DynamicArray::size() { return this->_size; } int& DynamicArray:: operator[](int i) { assert(i<this->_size); return this->_arrayHolder[i]; } void DynamicArray:: add(int n) { if(this->_max<this->_size+1) { this->_max*=2; int *tmp=new int[this->_max]; for(size_t i=0;i<this->_size;i++) { tmp[i]=this->_arrayHolder[i]; } delete[] this->_arrayHolder; this->_arrayHolder=tmp; this->_arrayHolder[this->_size]=n*n*n*n; this->_size+=1; } else { this->_arrayHolder[this->_size]=n*n*n*n; this->_size+=1; } } void DynamicArray:: printArray() { for(int i=0;i<_size;i++) { printf("Index=%d,value=%d in printArray()\n",i,_arrayHolder[i]); } }

    3.The second header file

    //MathHelper.h
    #include <iostream> #include <math.h> using namespace std; class MathHelper { public: int getDouble(int x); int getTriple(int x); int getSquare(int x); int getCube(int x); };

    4.The second source file

    //MathHelper.cpp
    
    #include <MathHelper.h>
    
    int MathHelper::getDouble(int x)
    {
        return x*2;
    }
    
    int MathHelper::getTriple(int x)
    {
        return x*3;
    }
    
    int MathHelper::getSquare(int x)
    {
        return x*x;
    }
    
    int MathHelper::getCube(int x)
    {
        return x*x*x;
    }

    5.The key step is to add header files in main  cpp file as below

    #include <DynamicArray.h>
    #include <MathHelper.h>

    6.The main.cpp as below

    #include <iostream>
    #include <uuid/uuid.h>
    #include <vector>
    #include <DynamicArray.h>
    #include <MathHelper.h>
    
    using namespace std;
    
    void dynamicArr4();
    void math5();
    
    
    int main()
    {
        dynamicArr4();
        math5();
        return 0;
    }
    
    void math5()
    {
        MathHelper mh;
    
        for(int i=0;i<1000;i++)
        {
            cout<<"Index="<<i<<",value="<<mh.getCube(i)<<endl;
        }
        printf("In math5() method!\n");
    }
    
    void dynamicArr4()
    {
        DynamicArray dArray;
        vector<int> vArray;
    
        for(size_t i=0;i<=100;i++)
        {
            dArray.add(i);
        }
        dArray.printArray();
    }

    6.Caution. Pay more attentio to the -I.   which will include the current directory

    When you begin to compile the main cpp file via gcc,it will and the '-I.' (i 'me' uppercase) to include the current directory files as below.

    g++ -g -std=c++2a -I. DynamicArray.cpp MathHelper.cpp h1.cpp -o h11 -luuid

    7.The compiled result as below 

     8.Run the compiled output

    ./h11

  • 相关阅读:
    linux中mysql,mongodb,redis,hbase数据库操作
    hbase数据库操作
    hdfs基本操作
    linux及hadoop基本操作
    创建有关hbase数据库的项目时所遇到的问题
    数据科学与大数据
    《TCP/IP详解卷1:协议》——第2章:链路层(转载)
    《TCP/IP详解卷1:协议》——第1章:概述(转载)
    深入理解计算机操作系统——第9章:缓存,存储器管理
    深入理解计算机操作系统——第9章:物理和虚拟寻址,地址空间
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15641678.html
Copyright © 2020-2023  润新知