Turbo C++3.0调试的问题
我用Turbo C++3.0运行了一个书上的事例,不过稍微作了点修改,第一次没有错误,第二次就出现错误提示和警告,如下,有错误和警告的地方用竹师的方式给出了,
#include <iostream.h>
#include <iomanip.h>
class table {
public:
table(int p,int q)
{
i = p;
j = q;
}
void ascii();
protected:
int i,j;
};
void table::ascii()
{
int n = 1,k;
for(k = i,k <= j;k++) //warning:code has no effect error:For statement missing ;
{
cout < < setw(4) < < (char)k;
if(n % 12 == 0)
cout < < endl;
n++;
};
cout < < endl;
}//warning: 'n ' is assignedavalue that is never used
class der_table:public table {
public:
der_table(int p,int q,char *m):table(p,q)
{ c = m; }
void display();
private:
char *c;
};
void der_table::display()
{
cout < < c < < endl;
table::ascii();
}
main()
{
der_table ob( 'a ', 'z ', "Ascii value----char ");
ob.display();
return 0;
}
[解决办法]
for(k = i,k <= j;k++) //warning:code has no effect error:For statement missing ;
{
cout < < setw(4) < < (char)k;
if(n % 12 == 0)
cout < < endl;
n++;
};//这里多个分号
[解决办法]
for(k = i,k <= j;k++)
改为:
for(k = i;k <= j;k++)
[解决办法]
还有,给楼主一个建议:
for(k = i,k <= j;k++) //warning:code has no effect error:For statement missing ;
{
cout < < setw(4) < < (char)k;
if(n % 12 == 0)
cout < < endl;
n++;
};//最好把这里的分号去掉
这个分号是“多余的”,但是不会造成错误,因为上述程序等价于:
for(k = i,k <= j;k++) //warning:code has no effect error:For statement missing ;
{
cout < < setw(4) < < (char)k;
if(n % 12 == 0)
cout < < endl;
n++;
}
;//一条空语句
这条空语句虽然合法(不会造成编译错误),但是没有丝毫的用途,去掉的好,养成好的变成习惯。
除此之外,还有一个建议,最好改用高级一点儿的编译环境,调试方便一些,功能也强大一些,如vs2005,个人意见,仅供参考。
[解决办法]
for(k = i,k <= j;k++)
==》
for(k = i;k <= j;k++) //分号,不是逗号