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

 

posted @   FredGrit  阅读(74)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2019-12-04 C# copy source directory files with original folder to the destination path
2019-12-04 C# transfer local file to remote server based on File.Copy
点击右上角即可分享
微信分享提示