| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 798 人关注过本帖
标题:一个令我头疼的问题
只看楼主 加入收藏
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用huanguyu在2006-7-10 20:07:22的发言:

同一个程序在两台机器上面一个OK,另外一个却有错误,曾经问过,aogun说是有台没打补丁 但是我确定两台都没打过SP6,现在在家里电脑上面运行还是出错谁能帮我解决下,错误如下
error C2248: 'inside' : cannot access private member declared in class 'String'
error C2248: 'inside' : cannot access private member declared in class 'String'
error C2593: 'operator >>' is ambiguous
error C2593: 'operator <<' is ambiguous
error C2593: 'operator <<' is ambiguous

源代码在附件里
注意 这个在有的机器上运行是没错误的



不知道你是不是真的确定两台机器都没安装sp6,而且你有没有试过安装sp6看看能不能解决这个问题??
如果实在不想安装还有一个暂时的解决办法,在定义String之前即语句class String之前添加namespace std{,直到main之前结束},这样在VC中应该可以暂时解决这个问题,你要不试试这种方法?


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-07-10 23:16
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
但是你那还是有问题,既然那不是在一个循环,而K又是那个循环中定义的变量,那不是局部变量了吗?怎么能在外面做比较?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-11 09:02
huanguyu
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-4-26
收藏
得分:0 
谢谢aogun 因为现在问题已经解决了 所以我没去试那种方法以后碰到同样的情况我在试下
引用wfpd:但是你那还是有问题,既然那不是在一个循环,而K又是那个循环中定义的变量,那不是局部变量了吗?怎么能在外面做比较?
见到你的留言以后我又写了两个程序试了一下
1。#include <iostream>
using namespace std;
int main()
{
for(int k=0;k<3;k++)
cout<<1<<endl;
cout<<k;
return 0;//这个程序没出问题
}
#include <iostream>
using namespace std;
int main()
{
for(int k=0;k<3;k++)
cout<<1<<endl;
for(int k=0;k<2;k++)//error C2374: 'k' : redefinition; multiple initialization
return 0;
}
我想是否是在循环里面定义的变量的生存期可以到这个函数体结束




看越多书就发现自己越无知 于是就越想知道更多
2006-07-11 12:48
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

以前也有人问个类似的问题,据说是因为编译器没能很好的支持C++的语法特征。
按道理这个变量只在循环内部起作用(一个块中)。


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-11 14:34
快速回复:一个令我头疼的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039928 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved