c++调用.h文件时出现未定义标识符?


#ifndef C++LIB.H
#define C++LIB.H

template<typename T>
void Reverse(T a[], int n)   // 将数组的前n个元素逆置
{
    T temp;
    for (int i = 0; i < n / 2; i++)
    {
        temp = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = temp;
    }
}

template<typename T>
void Compact(T a[], int arraySize)
{
    int free_index = 0;  // 非零元素存放地址
    for (int i = 0; i < arraySize;i++)  // 检测整个数组
    {
        if (a[i] != 0)  // 发现非零元素
        {
            if (i != free_index) // 前移
            {
                a[free_index] = a[i];
                a[i] = 0;
            }
            free_index++;
        }
    }
}

#endif
 #include <iostream>
#include "c++lib.h"
using namespace std;

int main()
{

    int a[6] = { 1, 0, 3, 5, 0, 6 };
    for ( int i : a)
    {
        cout << i << " ";
    }
    cout << endl;
    Reverse(a, 6);
    Compact(a, 6);
    for (int i : a)
    {
        cout << i << " ";
    }
    return 0;
}
 C++LIB.H
这里不要用特殊符号
用
C__LIB_H
试试看

别的地方照着修改

先确认你的 .H 文件是否存在,头文件名是否正确。。。