Каков будет результат компиляции и запуска на выполнение указанной программы.
#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(buffer+1,s);
return *this;
};
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
Для просмотра статистики ответов нужно войти.