重新发贴:ubuntu下编译用g++编译文件的报错:未声明成员函数?该如何处理
重新发贴:ubuntu下编译用g++编译文件的报错:未声明成员函数???
抱歉,刚才误点回车,重新发贴吧。
最近学习用ubuntu 和vim ,各种插件差不多弄清楚了,等熟悉一下发博客总结经验。下面进入正题:
用vim 写好了测试编译的文件:如下,
main.cpp
cat.h:
cat.cpp:
在控制台下用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文件删除
抱歉,刚才误点回车,重新发贴吧。
最近学习用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文件删除