C++ main函数调用其他文件中定义的类的方法, 加了该类的头文件,为什么编译时还是提示未定义?

//test.h
#include <iostream>
class Test{ public : Test(std::string &str); void Show(); private : std::string mHello; };
//test.cpp
#include "test.h"
Test::Test(std::string &str)//:mHello(str){ mHello = str;}void Test::Show(){ std::cout<<mHello<<std::endl;}
//main.cpp
#include "test.h"#include <iostream>
int main(){ std::string str; std::cin>>str; getline(std::cin,str); Test hello(str); hello.Show(); return 0; }

第1个回答  2014-01-17
代码风格完全有问题,这样根本不好排错,也不好给别人看。要知道,代码写出来是给人看的,如果人都看得头大,那么基本上代码就没有什么意义了。按照标准的C++风格写一遍后,看看是什么错误。
第2个回答  2014-01-17
链接错误,不是编译错误,用什么编译的,把test这两个文件加到工程了吗追问

加了 ,我刚才把代码拷到别人的电脑上就可以编译通过

追答

把test.cpp里的内容放到test.h里应该就行了,工程建的可能有问题,链接是找不到

第3个回答  2014-01-17
哪个未定义啊。要贴出来啊, 方便大家帮你。
大家给你方便,你这是不给大家方便啊
而且代码写成这样。。。哎。!追问

追答

已经测试,没有错误。
用using namespce std; 比较方便。

本回答被网友采纳
相似回答