首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++对象数组用for循环初始化 结果与分析不一致 想不通啊该如何处理

2013-10-01 
c++对象数组用for循环初始化 结果与分析不一致 想不通啊!!写了一个小代码测试对象数组的初始化发现结果和

c++对象数组用for循环初始化 结果与分析不一致 想不通啊!!
写了一个小代码测试对象数组的初始化  发现结果和分析的不一样 代码如下
# include<iostream>
using namespace std;
class test
{
public:
test(){};
test(char* n){this->number=n;};
char* getnumber(){return number;}
private:
char* number;
};

void main()
{
int i=0;
test *T[20];
    for (i=0;i<20;i++)
    {
   if ((i/2)==0) {T[i]=new test("A");}
   else T[i]=new test("b");
    }

for (i=0;i<20;i++)
{
cout<<T[i]->getnumber();
}

}

我分析运行结果应该是AbAbAbAbAbAbAbAbAb这样的
但是运行结果是AAbbbbbbbbbbbbbbbbbb  搞不懂是为什么
当对象中的数据是int 时候用i来初始化 输出的是012345678910  不懂为什数字可以 字符串不可以?     
[解决办法]
  for (i=0;i<20;i++)
    {
   if ((i/2)==0) {T[i]=new test("A");}
   else T[i]=new test("b");
    }

有问题!!你这不是取余,可以改为:
(i%2)

热点排行