在实现类声明和成员函数定义分离的时候出现的问题

时间:2022-02-09 10:00:16
在实现类声明和成员函数定义分离的时候,写了三个文件,一个是类定义,一个是成员函数,一个是主函数,但在用VC++6.0编译的时候出现了这样的错误error LNK2001: unresolved external symbol "public: void __thiscall Array_max::set_value(void)" (?set_value@Array_max@@QAEXXZ),麻烦那位给讲讲。还有就是Using namespace std,什么时候才用,什么时候不用,初学C++有点想不通,在此感激不尽!!

6 个解决方案

#1


用到std里的东西时用using std::XXX;

#2


VC编译器好像不支持namespace ,VS支持

#3


使用std空间里定义的函数时候就需要加
楼主的类是否是模板类,如果是模板类不支持分离编译,把实现文件和头文件放一起,或者把.cpp文件也include进来

#4


模板实现?

一般不支持分离,把声明和定义放一块儿吧。

#5


你怎么编译的,看起来是你的那个类实现文件并没有被链接进来
引用楼主 cailangwei 的回复:
在实现类声明和成员函数定义分离的时候,写了三个文件,一个是类定义,一个是成员函数,一个是主函数,但在用VC++6.0编译的时候出现了这样的错误error LNK2001: unresolved external symbol "public: void __thiscall Array_max::set_value(void)" (?set_value@Array_max@@QAEXXZ),麻烦那……

#6


引用 2 楼 bdmh 的回复:
VC编译器好像不支持namespace ,VS支持


VC是支持namespace的

#1


用到std里的东西时用using std::XXX;

#2


VC编译器好像不支持namespace ,VS支持

#3


使用std空间里定义的函数时候就需要加
楼主的类是否是模板类,如果是模板类不支持分离编译,把实现文件和头文件放一起,或者把.cpp文件也include进来

#4


模板实现?

一般不支持分离,把声明和定义放一块儿吧。

#5


你怎么编译的,看起来是你的那个类实现文件并没有被链接进来
引用楼主 cailangwei 的回复:
在实现类声明和成员函数定义分离的时候,写了三个文件,一个是类定义,一个是成员函数,一个是主函数,但在用VC++6.0编译的时候出现了这样的错误error LNK2001: unresolved external symbol "public: void __thiscall Array_max::set_value(void)" (?set_value@Array_max@@QAEXXZ),麻烦那……

#6


引用 2 楼 bdmh 的回复:
VC编译器好像不支持namespace ,VS支持


VC是支持namespace的