#include<iostream>
using namespace std;
class String {
public:
char *q;
int len;
String() { q = new char[0]; }
String(char * p) {
for (int i = 0;*p!=00; i++) {
len++;
p++;
}
q = new char[len];
for (int i = 0; i < len; i++) {
*q = *p;
p++; q++;
}
for (int i = 0; i < len; i++) {
cout << *q;
q++;
}
}
};
void main() {
String s1;
String s2("My name is navdeep.");
system("PAUSE");
}
为什么会发生这种情况我不知道,我已经尝试在for循环中包含cout,其中len正在增加。结果很好。但复制时出了点问题。
答案 0 :(得分:1)
您没有重置指针。 p和q应指向每个循环之前的数组的开头。