求大佬解答!!!为什么说成员函数没有声明???

喜欢马鹿马 2019-04-30 11:34:43
#include <iostream>
using namespace std;

/********* Begin *********/
class Car{
public:
string door;
string light;
int v;
void OpenDoor();
void CloseDoor();
void OpenLight();
void CloseLight();
void AddV();
void MinusV();
Car();
};
//在此处实现一个汽车类

void Car::OpenDoor(){
door = "on";
}
void Car::OpenLight(){
light = "on";
}
void Car::ClosenDoor(){
door = "off";
}
void Car::CloseLight(){
light = "off";
}
void AddV(){
v=v+10;
}
void MinusV(){
v=v-10;
}
/********* End *********/

int main()
{
/********* Begin *********/
string str;
cin>>str;
door="off";
light="off";
v=0;
Car c;
string str2[20];
for(int i=0;i<str.length;i++){
str2[i]=str.substr(i,i+1);
switch(str[i]){
case 1:
c.OpenDoor();
break;
case 2:
c.CloseDoor();
break;
case 3:
c.OpenLight();
break;
case 4:
c.CloseLight();
break;
case 5:
c.AddV();
break;
case 6:
c.MinusV();
break;
case 7:
cout<<"车门"<<door<<endl;
cout<<"车灯"<<light<<endl;
cout<<"速度"<<v<<endl;
}
}

//在此处读取输入的命令序列,并解析执行

/********* End *********/
}



他报错就说


0/5step3/usr.cpp:26:22: error: no ‘void Car::ClosenDoor()’ member function declared in class ‘Car’
void Car::ClosenDoor(){
^
step3/usr.cpp: In function ‘void AddV()’:
step3/usr.cpp:33:5: error: ‘v’ was not declared in this scope
v=v+10;
^
step3/usr.cpp: In function ‘void MinusV()’:
step3/usr.cpp:36:5: error: ‘v’ was not declared in this scope
v=v-10;
^
step3/usr.cpp: In function ‘int main()’:
step3/usr.cpp:45:5: error: ‘door’ was not declared in this scope
door="off";
^~~~
step3/usr.cpp:45:5: note: suggested alternative: ‘bool’
door="off";
^~~~
bool
step3/usr.cpp:46:5: error: ‘light’ was not declared in this scope
light="off";
^~~~~
step3/usr.cpp:47:5: error: ‘v’ was not declared in this scope
v=0;
^
step3/usr.cpp:50:23: error: invalid use of member function ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::length() const [with _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’ (did you forget the ‘()’ ?)
for(int i=0;i ~~~~^~~~~~
...全文
320 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Italink 2019-05-01
  • 打赏
  • 举报
回复
错误太多,看注释

#include <iostream>
#include<string>
using namespace std;
/********* Begin *********/
class Car {
public:
	string door;
	string light;
	int v;
	void OpenDoor();
	void CloseDoor();
	void OpenLight();
	void CloseLight();
	void AddV();
	void MinusV();
	Car() {};			//需要定义构造函数,可以直接加{},或者不写构造函数
};
//在此处实现一个汽车类

void Car::OpenDoor() {
	door = "on";
}
void Car::OpenLight() {
	light = "on";
}
void Car::CloseDoor() {		//Error1:ClosenDoor->CloseDoor
	door = "off";
}
void Car::CloseLight() {
	light = "off";
}
void Car::AddV() {   //Error2:Car::
	v = v + 10;
}
void Car::MinusV() {	//ERRor3:Car::
	v = v - 10;
}
/********* End *********/

int main()
{
	Car c;
	/********* Begin *********/
	string str;
	cin >> str;  //Error4:输入string需要头文件string
	c.door = "off";  //Error5:Car对象定义要在前,后面赋值需要访问类成员(.)
	c.light = "off";
	c.v = 0;
	
	string str2[20];
	for (int i = 0; i < str.length(); i++) {		//Errors6:length()是string的成员函数,需要加括号
		str2[i] = str.substr(i, i + 1);
		switch (str[i]) {
		case 1:
			c.OpenDoor();
			break;
		case 2:
			c.CloseDoor();
			break;
		case 3:
			c.OpenLight();
			break;
		case 4:
			c.CloseLight();
			break;
		case 5:
			c.AddV();
			break;
		case 6:
			c.MinusV();
			break;
		case 7:
			cout << "车门" << c.door << endl;
			cout << "车灯" << c.light << endl;		//同上
			cout << "速度" << c.v << endl;
		}
	}

	//在此处读取输入的命令序列,并解析执行

	/********* End *********/
}
  • 打赏
  • 举报
回复
哈哈!楼上眼尖!正解。
fei得更高 2019-05-01
  • 打赏
  • 举报
回复
ClosenDoor貌似多了一个n
喜欢马鹿马 2019-05-01
  • 打赏
  • 举报
回复
引用 3 楼 Italink 的回复:
错误太多,看注释

#include <iostream>
#include<string>
using namespace std;
/********* Begin *********/
class Car {
public:
	string door;
	string light;
	int v;
	void OpenDoor();
	void CloseDoor();
	void OpenLight();
	void CloseLight();
	void AddV();
	void MinusV();
	Car() {};			//需要定义构造函数,可以直接加{},或者不写构造函数
};
//在此处实现一个汽车类

void Car::OpenDoor() {
	door = "on";
}
void Car::OpenLight() {
	light = "on";
}
void Car::CloseDoor() {		//Error1:ClosenDoor->CloseDoor
	door = "off";
}
void Car::CloseLight() {
	light = "off";
}
void Car::AddV() {   //Error2:Car::
	v = v + 10;
}
void Car::MinusV() {	//ERRor3:Car::
	v = v - 10;
}
/********* End *********/

int main()
{
	Car c;
	/********* Begin *********/
	string str;
	cin >> str;  //Error4:输入string需要头文件string
	c.door = "off";  //Error5:Car对象定义要在前,后面赋值需要访问类成员(.)
	c.light = "off";
	c.v = 0;
	
	string str2[20];
	for (int i = 0; i < str.length(); i++) {		//Errors6:length()是string的成员函数,需要加括号
		str2[i] = str.substr(i, i + 1);
		switch (str[i]) {
		case 1:
			c.OpenDoor();
			break;
		case 2:
			c.CloseDoor();
			break;
		case 3:
			c.OpenLight();
			break;
		case 4:
			c.CloseLight();
			break;
		case 5:
			c.AddV();
			break;
		case 6:
			c.MinusV();
			break;
		case 7:
			cout << "车门" << c.door << endl;
			cout << "车灯" << c.light << endl;		//同上
			cout << "速度" << c.v << endl;
		}
	}

	//在此处读取输入的命令序列,并解析执行

	/********* End *********/
}
请问为什么输入一串数字之后没有输出啊?
赵4老师 2019-05-01
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧