C++ 为什么我的类函数不使用全局变量?
名为“listt”(故意双精度“t”)的字符串变量似乎没有声明,尽管它作为全局变量存在 我在网上寻找解决方案,我所能找到的只是人们告诉我确保我没有“使用名称空间std;”。。。这一点也不是C++ 为什么我的类函数不使用全局变量?,c++,C++,名为“listt”(故意双精度“t”)的字符串变量似乎没有声明,尽管它作为全局变量存在 我在网上寻找解决方案,我所能找到的只是人们告诉我确保我没有“使用名称空间std;”。。。这一点也不是 #include <iostream> #include "sally.h" #include <string> #include <stdlib.h> using namespace std; //globals /////////////r//c //3 =
#include <iostream>
#include "sally.h"
#include <string>
#include <stdlib.h>
using namespace std;
//globals
/////////////r//c
//3 = what it is you're doing, the day its happening, the time its happening
string listt[7][3];
//functions
int main()
{
int option1;
while(option1 != -1){
sally obj;
option1 = obj.menuop();
obj.direct(option1, obj);
}
}
“addlist函数”的主体
void sally::addlist(){
系统(“cls”);
字符串天[7]={“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”};
对于.h
文件中的(int num=0;num),您需要声明(而不是定义)全局变量(类外)。
包括此头文件在内的每个源文件都将看到声明,但定义仅出现在一个模块中(此处的主源文件)。我怀疑您没有声明listt
全局变量。因此sally::addlist
不知道它存在。
#ifndef SALLY_H
#define SALLY_H
class sally
{
public:
sally();
int menuop();
void direct(int a, sally obj);
void showlist();
void addlist();
void removelist();
virtual ~sally();
protected:
private:
int option1;
};
#endif // SALLY_H
void sally::addlist(){
system("cls");
string days[7] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
for(int num = 0; num<7; num++){
listt[num][0] = days[num];
cout<<"On "<<days[num]<<" you will ";
cout<<...<<endl;
cin>>listt[num][1];
system("cls");
cout<<"On "<<days[num]<<" you will "<<listt[num][1]<<" at *insert 24 hour time here*";
cout<<"..."endl;
cin>>listt[num][2];
}
}
extern string listt[7][3];