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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。