小编use*_*061的帖子

运算符+重载

好吧,我是操作员重载的新手,我必须在面向对象的程序中执行此功能,但我绝对需要帮助.以下是说明:

MyString对象应包含打印字符串的Print()方法

MyString对象应包含一个Length()方法,该方法报告字符串的长度

MyString对象应该包含一个默认构造函数,它将初始字符串设置为"Hello World"的值.

MyString对象应包含一个备用构造函数,允许设置字符串的初始值.

MyString对象应该重载以下运算符:

  • 应重载括号运算符以替换先前分配的Set和Get函数.请注意,两个实例都应在违反字符串数组bounaries时发出exit(1).

  • 赋值运算符(=)将源字符串复制到目标字符串中.请注意,目标的大小需要调整为与源相同.

  • 逻辑比较运算符(==)如果两个字符串的大小和内容相同则返回true.

  • 返回布尔否定为2的否定逻辑比较运算符(!=).

  • 连接运算符(+),用于连接两个字符串

  • 以下方式使用的加法/分配运算符(+ =):String1 + = String2作为String1 = String1 + String2运行

  • 加法(+)和赋值(=)运算符都需要能够进行级联操作.这意味着String3 = String1 + String2,或String1 = String2 = String3应该工作.

这是我在.cpp文件中的代码:

MyString::MyString()
{
       char temp[] = "Hello World";

       int counter(0);
        while(temp[counter] != '\0') {
              counter++;
       }
       Size = counter;
        String = new char [Size];
        for(int i=0; i < Size; i++)
            String[i] = temp[i];

}

MyString::MyString(char *message)

{
      int counter(0);
       while(message[counter] != '\0') {
            counter++;
        }
       Size = counter;
      String = …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading concatenation add

0
推荐指数
1
解决办法
509
查看次数

标签 统计

add ×1

c++ ×1

concatenation ×1

operator-overloading ×1