输出
null
#include<iostream> #include<string.h> 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) 极客问答 极客问答 (C) 极客问答 极客问答 (D) 极客问答 极客问答 答复: (B) 说明: 由于没有复制构造函数,编译器会创建一个复制构造函数。编译器创建的复制构造函数在“String s2=s1
所以s1和s2的str指针都指向同一个位置。
在带有动态内存分配指针的类中,必须有一个用户定义的复制构造函数。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END