【问题标题】:Identifier "initSol()" is undefined标识符“initSol()”未定义
【发布时间】:2026-02-13 14:15:01
【问题描述】:

我一直在编写一些 C++ 代码,但遇到了一个烦人的问题:“标识符 initSol 未定义”!我的项目分为 3 个文件: instance.h 包含数据结构(结构)“解决方案”和“问题” coupe.cpp 使用定义的结构并创建如下方法:

solution * initSol (problem * pb)
{
solution * s;
int * tab, used,i,selected;
    for (i = 0;i<pb->nbTotPcs;i++)
        s->elem[i] = 0;
used = 0; i = 0;selected = 0;
tab = eclatement (pb);
while ((used < pb->tailleBarre) && (i<= pb->nbTotPcs))
{
    used+=tab[i];
    s->elem[i] = 1;
    selected++;
}
s->nbTaillesDem = pb->nbTaillesDem;
s->objVal = used;
s->tailleBarre = pb->tailleBarre;
s->tailleTot = used;
s->nbElem = selected;
return s;
}

main.cpp :这是我调用 initSol 的主文件:

int * tab = (int *) malloc (prblm->nbTotPcs * sizeof(int));
solConst = initSol(prblm);

我遇到了问题

“标识符 initSol 未定义”

【问题讨论】:

    标签: c++ undeclared-identifier


    【解决方案1】:
    extern solution * initSol (problem * pb);
    

    应该进入标题,在结构之后

    【讨论】:

    • 还要确保在 main.cpp 中包含标头