重新发贴:ubuntu下编译用g++编译文件的报错:未声明成员函数?该如何处理

重新发贴: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_H
class 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文件删除