c++ 为什么在类里定义了i,在main函数里面使用时编译却说没有定义
1个回答
展开全部
在类里定义了i,那你在main函数里使用要通过那个类的对象来调用啊。 追问: 是呀 可是每次编译都说我用的 变量 i 没定义 回答: 贴个代码看看 追问: #include<iostream> using namespace std; class Mok { public: void Input(int,int); void Us(int,int,int); private: int M; int N; } void Mok::Input(int m,int n) { M=m; N=n; cin>>m>>" ">>n; } void Mok::Us(int h,int j,int mine) { for (;h<5000;h++) { mine = h; for(j=1;j<=n;j++) { if (mine%(m-1)!=0) break; else mine=mine/(m-1)*m; mine++; } if(j>n) { cout<<h<<" "<<mine<<endl;break; } } int main() { Mok l; l.Input(m,n ); l.Us(1,j,mine); return 0; } 一直不知道到底是哪出了问题 回答: 你main函数里的m,n 变量 没有定义,如果你要用Mok I;里的m,n的话,应该用I.m,I.n来调用。j,和mine一样没定义。。。 追问: 能帮我改下么 ??我不知道在哪定义 每次写的代码都是这个问题 好烦 回答: #include<iostream> using namespace std; class Mok { public: void Input(int,int); void Us(int,int,int); } void Mok::Input(int m,int n) { M=m; N=n; cin>>m>>" ">>n; } void Mok::Us(int h,int j,int mine) { for (;h<5000;h++) { mine = h; for(j=1;j<=n;j++) { if (mine%(m-1)!=0) break; else mine=mine/(m-1)*m; mine++; } if(j>n) { cout<<h<<" "<<mine<<endl;break; } } int main() { Mok l; int m=0,n=0; int j =0,mine = 1; l.Input(m,n ); l.Us(1,j,mine); return 0; } 大概能运行了,你这种问题的话应该多看看了解下 变量 作用域 的部分,变量的 生存周期 什么的 追问: 还是有点问题 它的 m n 显示在 Us函数中没有定义 回答: #include<iostream> using namespace std; class Mok { public: void Input(int,int); void Us(int,int,int); private: int m,n; } void Mok::Input(int m1,int n1) { m=m1; n=n1; cin>>m>>" ">>n; } void Mok::Us(int h,int j,int mine) { for (;h<5000;h++) { mine = h; for(j=1;j<=n;j++) { if (mine%(m-1)!=0) break; else mine=mine/(m-1)*m; mine++; } if(j>n) { cout<<h<<" "<<mine<<endl;break; } } int main() { Mok l; int m=0,n=0; int j =0,mine = 1; l.Input(m,n ); l.Us(1,j,mine); return 0; } 这样应该好了。。之前没注意看,这些是很简单的东西了,多看书啊!!!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询