请教为何出现段错误
1 #include <iostream>
2 using namespace std;
3 #include <string>
4
5 class String
6 {
7 char* x;
8 public:
9 String(char* x):x(0){}
10 String(const String& s){}
11 friend String operator+(const String& s2,const String& s3);
12 friend ostream& operator<<(ostream& o,const String& s1);
13
14 };
15 String operator+(const String& s2,const String& s3)
16 {
17 char* x=strcat(s2.x,s3.x);
18 return String(x);
19 }
20 ostream& operator<<(ostream& o,const String& s)
21 {
22 o<<s.x;
23 return o;
24 }
25
26 int main()
27 {
28 String string1("abc"),string2("efg"),string3("hij");
29 string1=string2+string3;
30 cout<<string1;
31 }
2 using namespace std;
3 #include <string>
4
5 class String
6 {
7 char* x;
8 public:
9 String(char* x):x(0){}
10 String(const String& s){}
11 friend String operator+(const String& s2,const String& s3);
12 friend ostream& operator<<(ostream& o,const String& s1);
13
14 };
15 String operator+(const String& s2,const String& s3)
16 {
17 char* x=strcat(s2.x,s3.x);
18 return String(x);
19 }
20 ostream& operator<<(ostream& o,const String& s)
21 {
22 o<<s.x;
23 return o;
24 }
25
26 int main()
27 {
28 String string1("abc"),string2("efg"),string3("hij");
29 string1=string2+string3;
30 cout<<string1;
31 }
...全文
相关推荐
段错误解决方法
段错误的原因**- **无效指针**:程序可能尝试通过一个空指针或未初始化的指针访问内存,导致段错误。- **越界数组访问**:当程序试图访问数组的边界之外的内存时,可能会触发段错误。
Linux下的段错误产生的原因及调试方法
### Linux下的段错误产生的原因及调试方法在深入探讨Linux下段错误的产生原因与调试方法之前,我们先来理解一下“段错误”(Segmentation Fault)的基本概念。
C语言段错误 总结 段错误整理
C语言段错误总结C语言中的段错误是指访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。段错误是一个非常麻烦的问题,因为它可能导致程序崩溃或出现不可预料的结果。一、什么是段错误?
段错误的调试
### 段错误的调试详解#### 一、段错误概念与原理段错误(Segmentation Fault)是一种常见的编程错误,通常发生在程序试图访问非法内存地址时。
段错误(linux)
#### 段错误的原因及实例段错误的发生有多种可能的原因,以下是一些常见的原因及其示例:1.


