首页 > 代码库 > 问题集--理解编译原理
问题集--理解编译原理
想把类从主函数文件中分离出来:
编译时出现了undefied refenence to...问题,代码如下:
//main.cpp #include <iostream> #include "student.h" int main(int argc, char **argv) { Student s1; s1.setNum(100); s1.display(); return 0; } //student.h #ifndef STUDENT_H #define STUDENT_H class Student { private: int num; public: void setNum(int n); void display(); }; #endif //student.cpp #include "student.h" #include <iostream> void Student::setNum(int n) { num = n; } void Student::display() { std::cout << num << std::endl; }
编译时出现以下错误:
如果将student.cpp中的函数放到类中,则不会出错!
//student.h #ifndef STUDENT_H #define STUDENT_H class Student { private: int num; public: void setNum(int n) { num = n; }; void display() { std::cout << num << std::endl; }; }; #endif
A:student.cpp要添加到当前项目里,和main.cpp一起编译成功以后,才能链接在一起生成目标程序!
由于编译时#include宏定义的头文件会全部被替换为源代码进行编译。如果将类代码全部放在.h文件中,由于main.cpp包含student.h头文件,在编译时会将.h头文件替换,再对main.cpp文件进行编译,这样不会出现编译错误!
问题集--理解编译原理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。