#include <iostream> #include <cstring> using namespace std; class namelist{ char *name; public: namelist(char *p){ name = new char[strlen(p) + 1]; if(name != 0){ strcpy(name,p); } } ~namelist(){ if(name != NULL) delete name; } namelist& operator = (char *p); namelist& operator = (namelist c); void display(){ cout << name <<endl; } }; namelist& namelist::operator = (char *p){ if(name != 0){ delete name; name = new char[strlen(p) + 1]; if(name != 0){ strcpy(name,p); } } return *this; } namelist& namelist::operator = (namelist c){ if(this != &c){ delete name; name = new char[strlen(c.name) + 1]; if(name != 0){ strcpy(name,c.name); } } return *this; } int main() { namelist n1("abc"),n2("bdc"); n1.display(); n2.display(); n1 = n2; n1.display(); n2.display(); return 0; }
时间: 2024-01-28 08:03:20 浏览: 29
这是一个 C++ 的程序,使用了类 namelist 来存储一个字符串。程序中定义了两个重载的运算符 =,分别用于将一个字符数组赋值给 namelist 对象,以及将一个 namelist 对象赋值给另一个 namelist 对象。在主函数中,创建了两个 namelist 对象 n1 和 n2,并分别赋值为 "abc" 和 "bdc"。然后将 n2 赋值给 n1,最后输出 n1 和 n2 的值。由于 namelist 类中重载了运算符 =,因此可以直接使用 = 运算符将一个 namelist 对象赋值给另一个 namelist 对象。输出结果为:bdc bdc bdc bdc。
相关问题
#include <iostream> #include<algorithm> #include<cmath> #include <queue> using namespace std;
#include <iostream>:这是C++标准库中的头文件,用于输入输出流操作,包括cin、cout等。
#include<algorithm>:这是C++标准库中的头文件,用于提供各种算法操作,如排序、查找等。
#include<cmath>:这是C++标准库中的头文件,用于提供数学函数操作,如绝对值、平方根等。
#include <queue>:这是C++标准库中的头文件,用于提供队列操作,包括入队、出队等。
using namespace std;:这是C++的命名空间声明,表示使用std命名空间,可以直接使用std中的函数和对象。
#include<iostream> #include<cstdio> using namespace std;是什么意思
#include<iostream> #include<cstdio> using namespace std; 是C++中的预处理指令,用于引入头文件和命名空间。
1. #include<iostream> 是引入iostream头文件,其中包含了输入输出流的定义,例如cout和cin等。
2. #include<cstdio> 是引入cstdio头文件,其中包含了C语言标准输入输出函数的定义,例如printf和scanf等。
3. using namespace std; 是使用std命名空间,std是C++标准库的命名空间,其中包含了很多常用的函数和类。
这些预处理指令的作用是为了在程序中能够使用输入输出流和标准库函数,使得程序更加方便和简洁。