读书人

c++对象数组用for循环初始化 结果与分

发布时间: 2013-10-01 12:15:56 作者: rapoo

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)

读书人网 >C++

热点推荐