输出?
#include
#include
using namespace std;
class String
{
char *str;
public:
String(const char *s);
void change(int index, char c) { str[index] = c; }
char *get() { return str; }
};
String::String(const char *s)
{
int l = strlen(s);
str = new char[l+1];
strcpy(str, s);
}
int main()
{
String s1("geeksQuiz");
String s2 = s1;
s1.change(0, 'G');
cout << s1.get() << " ";
cout << s2.get();
}
(A)怪胎测验
极客
(B)怪胎测验
怪胎测验
(三)怪胎测验
极客
(D)怪胎
怪胎测验答案: (B)
说明:由于没有副本构造函数,因此编译器将创建一个副本构造函数。编译器创建的副本构造函数在“ String s2 = s1;”行中进行浅表复制。
因此,s1和s2的str指针都指向同一位置。
在类中必须有一个用户定义的副本构造函数,其指针具有动态内存分配的指针。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。