Каков будет результат компиляции и запуска на выполнение
указанной программы.
#include
#include
class string{
char buffer[257],mute;
public:
string(){
*buffer=0;
}
string(char * loc){
strncpy(buffer+1,loc,255);
*buffer=(char)strlen(buffer+1);
};
char & operator [](int x){
if(x<256&&x>=0)
return buffer[x];
else
return mute;
};
string operator = (char*str){
strncpy(buffer+1,str,255);
*buffer=(char)strlen(buffer+1);
return *this;
};
operator char*(){
return buffer+1;
};
string operator + (string s){
char b[1024];
strncpy(b,buffer+1,*buffer);
b[*buffer]=0;
strcat(b,s);
return string(b);
};
string operator = (string s){
*this = (char *)s;
return *this;
};
}s1,s2,s3;
int main(){
s1 = "strateg ";
s2 = "more strategs";
s1[4]='o';
s3 = s1+s2;
printf("s1=%s\t s2=%s\t s3=%s",(char *)s1,(char *)s2,(char *)s3);
return 0;
}
Ответы:
1. Ошибка на этапе
компиляции.2. На экран будет выведено: s1=stroteg
s2=more strategs s3=stroteg more strategs 3. На
экран будет выведено: s1=strateg s2=more strategs s3=strateg more
strategs 4. При выполнении возникнет GP ошибка.
5. На экран будет выведено: s1=stroteg more strategs s2=more
strategs s3=stroteg more strategs 6. На экран будет
выведено: s1=more strategs s2=stroteg more strategs s3=stroteg more
strategs
- a. 1
- b. 2
- c. 3
- d. 4
- e. 5
- f. 6
Для просмотра статистики ответов нужно
войти.