gpt4 book ai didi

c++ - g++ "undefined reference to"一些函数

转载 作者:行者123 更新时间:2023-11-27 23:04:40 25 4
gpt4 key购买 nike

<分区>

当我尝试编译程序时(如下部分所示),我收到错误消息“undefined reference to fraction::from_string(char const*)”。我怀疑我将字符串转换为 C 样式字符串时存在一些问题,但我似乎无法解决它。我可以在发生错误的构造函数外部调用 from_string 函数,但如果我尝试在构造函数中启用代码,则会收到此错误。

这是我的代码。是的,我相信标准中已经有一个“比率”或一些类似的对象。与问题无关。

在文件 fraction.h 中:


class fraction {
public:

fraction();
fraction( int a );
fraction( int a, int b, bool red );
fraction( string inStr, bool red );

static fraction from_string( const char* raw );

}

在文件 fraction_imp.h 中:

#include "fraction.h"

fraction from_string( const char* raw )
{
// omitted for brevity. Parses the string to extract a numerator
// and denominator for the fraction object
}

fraction::fraction( string inStr, bool red = false ) : auto_reduce(red)
{
char* raw = const_cast<char*>( inStr.c_str() );
fraction t = from_string( cRaw );
numer = t.numer; denom = t.denom;
}

我从编译器中得到以下错误:

------------ 构建:分数中的 D(编译器:MinGW-w64/GNU GCC 4.9.0 编译器)---------------- -

x86_64-w64-mingw32-g++ -Wall -fexceptions -g -std=c++11 -c C:\cpp\fraction\main.cpp -o obj\D\main.ox86_64-w64-mingw32-g++ -o bin\D\rational.exe obj\D\main.o
obj\D\main.o:在函数 fraction::fraction(std::string, bool)' 中:
C:/cpp/fraction/fraction_imp.h:84: undefined reference
fraction::from_string(char const*)'collect2.exe:错误:ld 返回 1 退出状态进程以状态 1 终止(0 分钟,2 秒)1 个错误,1 个警告(0 分钟,2 秒)

我已经尝试了很多方法来让函数调用工作......在某一时刻,构造函数看起来像这样:

fraction::fraction( string inStr, bool red = false ) : auto_reduce(red)
{
char* raw = new char[inStr.size() + 1];
copy(inStr.begin(), inStr.end(), raw);
raw[inStr.size()] = '\0';
char cRaw[50];
strcpy( cRaw, raw );
fraction t = from_string( cRaw );
numer = t.numer; denom = t.denom;
}

但仍然没有运气。由于错误显示 undefined reference to fraction::from_string(char const*) 我不确定我一直得到的类型是否是指向字符的常量指针而不是指向常量字符的指针。 .?或者这是因为我在 fraction 构造函数中创建了一个临时的 fraction 对象?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com