我有一个任务要做,它是实现一些接口,但当我包含头文件时,它为我写的它不能识别方法
我的意思是我有一个班级
A.h
{
some code....
}
A.c
{
#include "A.h"
implemented methods...
}
如果我有一个B级,如果我包含 .h 文件我想使用A类它不起作用 像这样:
B.c
{
#include "A.h"
}
但如果我包含 A.c ,它确实会识别这些方法,那么有人知道为什么会这样吗?
答案 0 :(得分:0)
你的描述相当......很奇怪,但我认为你有一个链接问题。
如果您在“A.c”中有代码,则会将其编译为保存结果代码的目标文件(通常为“A.o”或“A.obj”)。
但仅仅因为你在另一个C文件(“Bc”)中说#include "A.h"
,不会神奇地导致“Ao”目标文件被链接。
编译类似:
$ cc -o myprogram B.c A.c
使编译器将两个C文件合并为一个可执行文件,或者
$ cc -o myprogram B.c a.o
链接到预先存在的目标文件。
此外,C中没有“方法”,你的大括号非常奇怪。