C++问题,为什么会显示“pa”: 未声明的标识符?如何更改?
请贴main.cpp的源代码,问题在main.cpp里
补充:
在C和C++程序中,变量及方法的声明和调用是有顺序的。如果你在声明一个变量之前就已经使用了这个变量,就会出现未申明的标识符错误。
所以你的程序正常在声明、包含和调用的顺序应该是这样的。
general.h文件,声明结构体TT
#pragma once
/*
这里不需要#include "h1.h"
*/
#include
struct TT
{
int a;
int b;
};
h1.h声明print方法,使用了结构体TT,需要#include "general.h",因为这个文件里包含了对TT的声明
#include "general.h"
using namespace std;
void print(TT t)
{
cout << "print" << t.a << " " << t.b << endl;
}
main部分
/*
这里不是#include "general.h",而是#include "h1.h",因为h1.h中即包含了print方法的声明,同时也#include "general.h"包含了对TT结构体的声明
*/
#include "h1.h"
using namespace std;
int main()
{
TT t;
t.a = 1;
t.b = 3;
print1(t);
print2(t);
system("PAUSE");
return 0;
}
任何写在预编译头文件#include "stdafx.h"前面的都被忽略,你必须把#include 放到#include "stdafx.h"后面。这和语言无关,是vc为了提高编译速度特有的
……if ( A::count == 0 ) {
A a;
A *pa = NULL;
pa=&a;
} /* 指针变量pa在if分支的大括号内定义,只在这对大括号内有效(作用域) */
pa->Disp( ); /* 这里的pa 没有定义过。将这一句移入上面的大括号内即可。 */
……
A a;
A *pa = NULL;
作用域 只是if的括号理 出了外面 就是未定义了
因为pa是在if的语句块里声明的,出了if的语句块,就消失了,所以在后面的pa是未定义的
固态硬盘为什么会出现0e的问题?
其次,固态硬盘的坏块问题可能会导致数据丢失和系统崩溃。当硬盘读取或写入数据时,如果遇到坏块,就可能导致数据损坏或丢失。此外,如果坏块数量过多,硬盘可能无法正常工作,甚至会导致系统无法启动。要修复固态硬盘的0E错误,可以尝试使用一些硬盘修复工具。这些工具可以扫描硬盘并尝试修复坏块。如果修复成功,...
掉帧是什么原因,为什么会卡屏
2、网速问题:当你的电脑网速达不到游戏的最基本要求延迟不能超过100毫秒以上,游戏中也会卡屏,或者延迟太高。解决方法就是换一个快速的网,或者用加速器登录游戏。3、硬件问题:电脑显卡受到轻微破损,显卡的性能不好或兼容性不佳。解决方法就是替换新的更好的显卡。或者添加显卡交火,但显卡交火对...
为什么会报mme设备错误?
在Audition中,进入“编辑”->“首选项”->“音频硬件”部分,检查默认的音频输入和输出设备是否正确。如果不确定,可以尝试更改设置,测试不同的设备配置,看是否可以解决问题。5. 操作系统设置 在某些情况下,操作系统的音频设置可能会与Audition产生冲突。进入操作系统的声音设置,确保默认音频设备与...
工程实践中为什么会出现伦理问题?
3. 社会责任问题:工程实践的目标是服务社会,而社会又有不同的需求和期望,如节能、环保等。在工程实践中,工程师需要承担社会责任,遵循伦理准则,与社会各界保持良好关系。4. 文化差异问题:不同文化有不同的价值观和准则,工程实践中涉及到跨文化交流的时候,有可能会出现文化差异问题。工程师需要认真...
性别角色为什么会出现问题?
令人愤怒!而且,这种事件不是偶然的,在各个地方时有发生。所以,我们要从小就要教育孩子尊重性别的差异,学会正确和异性相处,不拿性别作为限制或者资本,尊重男女之间的平等。当然,这件事不只是性别问题,还有道德问题。我们不必要教孩子如何变得厉害,但是必须教给孩子如何躲避。
为什么分堆问题会重复
乙丙,乙丁,丙丁(两组中一组的情况),这时候甲乙和丙丁一组会与丙丁和甲乙一组重复,所以要排除重复的情况:2组的全排列2A2同理,6个人abcdef均分为3组任选一组ab,ce,df,按6C2*4C2*2C2的算法,会有3A3种情况重复,即ab,ce,df三组的全排列所以6人分3组答案为6C2*4C2*2C2\/3A3 ...
在怀孕时,为什么会容易出现口腔问题?
多数适龄妇女在备孕前并没有进行专业的口腔检查,口腔健康意识淡薄,认为牙齿不疼痛,就没有口腔问题。这就为孕期出现口腔问题,埋下了隐患。孕妇在孕期间,机体激素水平会明显改变,与怀孕相关的孕激素水平明显增高,而口腔内的潜伏隐患就会集中爆发,如智齿冠周炎,妊娠期龈炎,牙髓炎以及根尖周炎等等,...
为什么会出现芯片短缺?该如何解决芯片短缺的问题?
这可能是个好消息。更多的芯片制造能力需要上线,但也可能需要更新以适应行业和消费者需要的新型芯片。现在是我们采取行动的时候了。虽然各国政府和各大芯片制造公司都意识都芯片短缺的危机,也都采取了相应的解决措施,但是短期之内短缺的问题是不会被解决的,这需要一段时间来建立挖掘资源,建立工厂等。
氩气焊为什么会出现气孔问题?
2. 材料表面污染:焊接前,如果焊接材料表面有油脂、水分或其他污染物,当焊接开始时,这些污染物可能分解产生气体,导致气孔。3. 焊接参数不当:焊接时的电流、电压、焊接速度等参数设置不当,可能会导致焊缝不稳定,产生气孔。4. 材料质量问题:焊接材料本身的质量问题,例如含有杂质、气孔等,也可能导致...
婚姻到七年为什么会出问题呢 七年之痒有哪些表现呢
大家肯定都听过七年之痒这个词语,其实这个词是告诉我们,在第七年的婚姻生活中,往往婚姻会遇到风险,弄不好的话很可能会离婚。不少人都想知道,婚姻到七年为什么会出问题呢?下面我们就从各方面来分析一下。1、婚姻生活中的鸡毛蒜皮消磨掉了彼此的感情,其实,在婚姻的初期,夫妻之间的感情都很好。
呈士博来: i的默认值应该是0;由于Switch里的每个Case都没有break,所以每个符合条件的case后的所有case的表达式都会执行. 1、i=0;从case 0开始,a+2+3+5=10 2、i=1;从case 1开始,a+3+5=18 3、i=2;从case 2开始,a+3+5=26 4、i=3;从case 3开始,a+2+3+5=36 4、i=4;从default开始,a+5=41 所以答案是41 如果确定答案是31的话,那i应该是1.但是默认值应该是0,估计for里面i=1,可能是你的书有印刷错误
合水县17290824924: c++为什么会出现cannot convert parameter 1 from 'const int' to 'const class C &'的报错 - ?
呈士博来: 看报错说明,不能强制转换,意思是不能从整形转换到C类,你错误在于object1(6),因为你构造函数里面没有带一个参数的,所以呢,不匹配,你构造一个只有一个参数的构造函数就可以匹配了
合水县17290824924: C++的简单问题 - ?
呈士博来: ((a%!=40)||(a%100==0&&a%!=0)); 你判断是否是闰年的公式有误,应该改为((a%400==0)||(a%100!=0&& a%4==0)); 还有就是 case 1:d=c;break; case 3: case 5: case 7:case 8: case 10: case 12:d=c+31;break; 比如这段代码,月...
合水县17290824924: c++用new 创建一类对象数组时,指针对象的表示是怎么表示的.为什么访问pa指针对象函数方法和访问p1的不同 - ?
呈士博来: 首先 这些问题你可以在<C和e68a843231313335323631343130323136353331333330363864指针>这本书中找到 这么多字 还是这么晚 给个分吧...其次 a->b 和 (*a).b 是一个意思 括号是养成良好习惯 你熟知运算符的优先级可以飘逸些...
合水县17290824924: 请教各位大侠为什么下面的C++代码*(pa - 1)最终结果是5?谢谢 - ?
呈士博来: 类型则是int[][5]&a相当于(int (*)[5])a,则pa=(int *)(&a+1)相当于a+5.则(&a+1)相当于(int(*)[5])(a+5),因此*(pa-1)就是a[4]了
合水县17290824924: c++ 简单的问题 - ?
呈士博来: “a:\\xxk\\数据”:长度为11,c语言中\\表示一个\,一个汉字长度为2 "\'a\'xy=4\n":长度为8,因为C语言中' '用来作为字符的定界符,所以要表示'本身,应用车义字符\'不表示.\n也是一个字符,是回车符.
合水县17290824924: C++数据结构单链表出现Compiling.Error spawning cl.exe什么意思 - ?
呈士博来: VC++出现Compiling... Error spawning cl.exe 错误的解决办法有如下几种,请楼主尝试:方法1: 启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值....
合水县17290824924: 为什么编译和运行vc++ 时会出现Error spawning c1.exe 的错误 - ?
呈士博来: 可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的“Compiling... ,Error spawning cl.exe”错误提示给郁闷过.很多人的选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正...
合水县17290824924: 电脑总是出现这个提示好像是C++的问题 - ?
呈士博来: 这是提示有某一个文件在系统启动时损坏或运行不了,却又不影响系统的开启与运行,但会对某种应用程序不能运行或某一功能执行不了,建议对操作系统进行修复,看看能不能解决问题,实在不行重装系统.
合水县17290824924: C++的简单简单问题 - ?
呈士博来: pa= new clock; //here 这个会在堆上申请一块内存,用来存放 pa 的对象 然而,c/c++在执行new的操作时,不会自动清空内存里原本的内容,所以出现了你看到的情况.如果你想 pa= new clock; 而默认的清空,可以给 clock 类增加默认的构造函数,里面添加初始化代码:class clock{ public: clock(): hour(0), minute(0), second(0){} ....}