g++ 关于 typedef 的未定义引用的错误

问题描述 投票:0回答:1

我正在尝试编译一个简单的测试程序,我包含的头文件之一具有以下 typedef

typedef const char* CharConst;
typedef unsigned int MyBool; 

稍后在头文件中,使用此 typedef 定义了一些函数。 像这样的东西:

MyBool add_att(CharConst attr, const char*);

当我尝试调用此函数时出现错误,调用如下:

CharConst myconst = "some text";
const char* more_text = "more text";
add_att(myconst, more_text);

错误是:未定义引用 `MyClass::add_att(char const*, char const*)'

编译器似乎不喜欢第一个参数已在头文件中进行 typedef 的事实。但它并不介意MyBool。 编译器仅抱怨 CharConst 定义。

有什么简单的方法可以解决这个问题吗? 关于我能做什么的任何线索或提示? 我正在运行 gcc 版本 4.6.2

c++ linux g++ typedef
1个回答
0
投票

从错误看来add_att是一个类的方法;我没有看到您的类的实例来调用该方法。考虑一下:MyClass *m = new MyClass(); m->add_att(....)

或者,确保函数是实际定义的,而不仅仅是原型。另外,这可能并不重要,但是在函数定义期间 - 您是否在函数参数中使用 typedef ?其实这不重要...类型是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.