重新发贴:ubuntu下编译用g++编译文件的报错:未声明成员函数???
抱歉,刚才误点回车,重新发贴吧。
最近学习用ubuntu 和vim ,各种插件差不多弄清楚了,等熟悉一下发博客总结经验。下面进入正题:
用vim 写好了测试编译的文件:如下,
main.cpp
- C/C++ code
#include <iostream>#include "cat.h"using namespace std;void function ( int a, int b ){ cout<<"Hello world"<<endl;}int main (){ Cat myCat; function(3,8); char str[10]; cin >> str; cout << str <<endl; myCat.show(); myCat.cppshow(); cout << "Hello world" << endl; return 0;}cat.h:
- C/C++ code
#ifndef CAT_H#define CAT_Hclass Cat{private: char name[10] ;public: void show(); void cppshow(); void cinName ( char *str);};#endif /*CAT_H*/cat.cpp:
- C/C++ code
#include "cat.h"#include <iostream>using namespace std;void Cat::show(){ cout << "I am the function show" <<endl;}void Cat::cppshow(){ cout << "I am in the function cppshow" << endl;}void Cat::cinName ( char *str ){ cin >> name;}在控制台下用g++编译。开始是没有void cinName(char * str)的,编译很顺利。后来随手加上了void cinName(char * str)这个函数。现在的样子。重新编译却出现错误:cat.cpp:14:31: 错误: 成员函数‘void Cat::cinName(char*)’未在类‘Cat’中声明
编译命令:g++ main.cpp cat.cpp -o main
代码有问题么?还是其他问题,怎么解决?
顺便问一下,在linux下编译有什么更好更合理的编译方法么?
[解决办法]
或者头文件没保存就编译了?
[解决办法]
恭喜楼主!
更新了.h文件以后一定要将.gch文件删除