问题描述
- 求高手帮忙解答一下c++的问题,我不知道哪里有问题?
-
//rectangular.h
#include
class rectangular
{public:
rectangular(float a=3,float b=4,float c=5);
void in_output();
private:
float length,width,height,volume;
};
rectangular::rectangular(float a,float b,float c)
{
length=a;
width=b;
height=c;
}
//rectangular.cpp#include"rectangular.h"
void rectangular::in_output()
{
cout<<"请分别输入长方柱的长宽高:"<
cin>>length>>width>>height;
volume=length*width*height;
cout<<"体积:"<<volume<<endl;
}
//file.cpp#include"rectangular.h"
int main()
{
rectangular v1;
rectangular V2(6);
rectangular V3(7,8);
rectangular V4(9,10,11);
cout<<"第一个体积:"<<endl;
v1.in_output();
cout<<"第二个体积:"<<endl;
v2(6).in_output(6);
cout<<"第三个体积:"<<endl;
v3(7,8).in_output(7,8);
cout<<"第四个体积:"<<endl;
v4(9,10,11).in_output(9,10,11);
return 0;
}报错:
file2.cpp
D:file2.cpp(11) : error C2065: 'v2' : undeclared identifier
D:file2.cpp(11) : error C2228: left of '.in_output' must have class/struct/union
type
D:file2.cpp(13) : error C2065: 'v3' : undeclared identifier
D:file2.cpp(13) : error C2228: left of '.in_output' must have class/struct/union
type
D:file2.cpp(15) : error C2065: 'v4' : undeclared identifier
D:file2.cpp(15) : error C2228: left of '.in_output' must have class/struct/union
type
执行 cl.exe 时出错.file2.obj - 1 error(s), 0 warning(s)
解决方案
rectangular v1;
rectangular v2(6);
rectangular v3(7,8);
rectangular v4(9,10,11);
看错误提示,undeclared identifier , 没有声明的标识符。所以定位到变量。
v2到v4首字母统一小写,你后面用的变量都是小写。
解决方案二:
- 你定义的时候是大写V2,使用的时候是小写v2
- v3,v4,与这个问题相同
解决方案三:
rectangular V2(6);
rectangular V3(7,8);
rectangular V4(9,10,11);
这是定义,调用时必须这样:
v2.in_output();
v3.in_output();
v4.in_output();
你基本属于0基础嘛。
解决方案四:
变量大小写没有一致。查查v1、V2、V3、V4、V5、V6
解决方案五:
你的调用有问题啊,你的错误是D:file2.cpp(11) : error C2228: left of '.in_output' must have class/struct/union
type,意思也就是告诉你in_output的左侧必须是一个类,这是类函数的调用基本问题啊,应该是v2.in_output,其余的依次类推啊
解决方案六:
c++是区分大小写的
解决方案七:
区分大小写的,,,,变量为定义