为什么我的类函数不使用我的全局变量?

why is my class function not using my global variables?

本文关键字:我的 全局变量 类函数 为什么      更新时间:2023-10-16

名为"listt"(有意双精度"t"(的字符串变量似乎没有被声明,尽管它作为全局变量存在。

我在网上寻找解决方案,我能找到的只是人们告诉我确保我没有"使用命名空间 std";...反正不是。

#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);
}
}

头文件:

#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];
}
}

.h文件中,您需要声明(而不是定义(全局变量(在类外部(。

extern string listt[7][3];

包含此头文件的每个源文件都将看到声明,但定义仅出现在一个模块中(此处的主源文件(。