脚本宝典收集整理的这篇文章主要介绍了用vs2017 C++写数据结构实验遇到的各种问题汇总,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一、error C2061: 语法错误: 标识符“Car”
问题截图:
Parking.h文件:
Car.h文件:
明明我include了Car.h文件,可编译器却找不到,那可能是我Car.h文件出现了问题,谷歌之后才知道,这是由于循环引用造成的。
解决方法:
在Parking.h中用类的前项声明:class Car;
补充:
为了保证编译安全,在.h文件头部添加一些预处理,如果不加,则在文件多次引用时报错:
"error C2011 ‘class’类型重定义"
保证文件只被编译一次
#ifdef,#define,#endif
不仅可以保证同一个文件不会被编译多次,也能保证内容完全相同的两个文件不会被不小心同时编译,但依赖于宏名字不能冲突
示例:
#pragma once
... ... // 一些声明语句
#ifndef _SOMEFILE_H_
#define _SOMEFILE_H_
.......... // 一些声明语句
#endif
二、链表pop()方法
这段程序有两处问题:
调用pop方法:
2.newData与*temp->data都是对象,不能用"="赋值,需要使用重载函数重载"=":
三、this 是 0xCDCDCDCD
查了一下,出现0xCDCDCDCD一般是由于指针没有初始化。
于是打断点debug,一步一步调试,终于发现,原来是我没有对data初始化
添加初始化后再调试,data就有值了
四、 cout不明确
这个错是非常诡异,目前我只遇到过两次,一次是写程序时莫名其妙就出现了,还有一次是在帮董浩天调试程序时突然就出现了。触发条件尚不清楚。
解决方法:将"using namespace std;"给注释掉,等待它所有的cin,cout都出错,再将注释去掉,问题就解决了
原文地址:"error: cout 不明确的符号"
五、 将对象数组作为类的成员
一开始的时候,我是这么写的:
然后它报错,我想了想,哦,类在声明时是不给分配内存空间的,所以Car data[MaxSize]
这种写法是不对的
得先给它一个指针指向数组名,然后在构造函数里去创建这个类的成员Car data[MaxSize]
,如下:
类的声明
构造函数:
以上是脚本宝典为你收集整理的用vs2017 C++写数据结构实验遇到的各种问题汇总全部内容,希望文章能够帮你解决用vs2017 C++写数据结构实验遇到的各种问题汇总所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。