dev c++怎么用,devcheck

  dev c++怎么用,devcheck

  Dev-c将头文件与头文件函数分离,编译主函数跳出未定义引用解决问题_ Blog _dev c头文件

  博客明星评选

  更新于2022年5月13日8: 00

  在谭浩强学习面向对象编程C第3版,第2章,练习4:

  需要分开三个文件:主函数(。cpp)、类的声明(头文件)和成员函数的定义文件(。cpp)。

  在单独使用Dev-C的实现中,发现编译时一直出现对set_value的未定义引用,这意味着定义的函数是未定义的,但我们有,所以应该是我们没有无法链接到的函数实现文件。

  解决方案1:用visual studio 2022编译器编译源代码:

  类别声明:

  #包括iostream

  #包含字符串. h

  #包含字符串

  使用命名空间std

  //Student.h

  班级学生

  {

  私人:

  int num

  字符串名称;

  迷人的性爱;

  公共:

  void set _ value();

  void show _ value();

  };

  成员函数定义

  #包括iostream

  #include 类。 h

  使用命名空间std

  void Student:set_value(){

  cin小水名性;

  }

  //首先编译这个文件

  void Student:show_value(){

  cout num: num name: name sex:

  主函数:(特别说明:主函数第一段的#define是用printf和scanf(visual stdio 2022认为不安全不能用,需要引入这个宏定义))

  #定义

  #包括iostream

  #include 类。 h

  使用命名空间std

  int main(){

  学生s1、S2;

  S1 . set _ value();

  S2 . set _ value();

  S1 . show _ value();

  S2 . show _ value();

  返回0;

  }

  解决问题:

  编辑

  方案二:因为在dev-c中,系统是逐文件搜索的,也就是说,如果要使用这个类或者这个函数,需要引入定义这个函数实现的文件或者声明这个类的文件。例如,当我们使用cout和CIN函数提取插入的流进行输入和输出时,我们需要执行预处理指令#include iostream来引入iostream函数。

  所以在dev-c中要依次引入文件。代码如下:

  1.成员函数定义文件define.cpp

  #包括iostream

  #包含“class.h”

  使用命名空间std

  void Student:set_value(){

  cin小水名性;

  }

  //首先编译这个文件

  void Student:show_value(){

  cout num: num name: name sex:

  2.类声明文件class.h

  #包括iostream

  #包含字符串

  使用命名空间std

  班级学生

  {

  私人:

  int num

  字符串名称;

  迷人的性爱;

  公共:

  void set _ value();

  void show _ value();

  };

  3.主函数文件main.cpp(。这里介绍cpp,而Vscode是class.h

  #包含“define.cpp”

  #包括iostream

  使用命名空间std

  int main(){

  学生s1、S2;

  S1 . set _ value();

  S2 . set _ value();

  S1 . show _ value();

  S2 . show _ value();

  返回0;

  }

  编译结果如图所示:

  编辑

  我们来分析一下:

  这里的main函数引入define.cpp文件,相当于将define.cpp函数实现文件插入main.cpp文件,而将类声明文件class.h引入define.cpp文件,相当于将class.h函数再次插入main.cpp,所以相当于将三个文件合二为一。

  总结:在dev-c中,是逐文件搜索。如果需要使用相应的文件函数,需要介绍一下。在visual studio 2022中,创建文件是一个项目。如果导入的头文件中有函数声明,vscode强大的链接功能会在使用头文件时自动找到对应的函数实现文件(只在当前目录下)。

  电脑魔术师原创作品,博主,转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: