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

C++ 为什么我的类函数不使用全局变量?,c++,C++,名为“listt”(故意双精度“t”)的字符串变量似乎没有声明,尽管它作为全局变量存在 我在网上寻找解决方案,我所能找到的只是人们告诉我确保我没有“使用名称空间std;”。。。这一点也不是 #include <iostream> #include "sally.h" #include <string> #include <stdlib.h> using namespace std; //globals /////////////r//c //3 =

名为“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);
    }
}
“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];