首页 > 解决方案 > 用 {" ", " "} 初始化对象数组

问题描述

我正在尝试初始化一个字符串数组(该类包含一个默认构造函数和一个像这样的构造函数:String(const char* helper)。我也有 <<; 的重载运算符但是当我尝试执行以下操作时,没有任何反应:

 String suits[4] = {"Hearts", "Clubs", "Diamonds", "Spades"};
        std::cout << suits[2];

但是这个没问题:

        const String suit = "Hearts";
        std::cout <<suit;

0

如果没有 const,它的工作原理是一样的。我想为自己构建字符串类。关于字符串类:

class String
{
    char* buffer;
    int size;
    public:

    String(const char* helper)
    {
        size_t sizeH = strlen(helper);
        buffer = new char[sizeH];
        for (int i = 0; i < sizeH; ++i)
        {
            buffer[i] = helper[i];
        }
        buffer[sizeH] = 0;
        size = sizeH;
    }
    String()
    {
        buffer = nullptr;
        size = 0;
    }
    void sizeOfBuffer()
    {
        std::cout <<size<<"\n";
    }

    ~String()
    {
        delete[] buffer;
    }

标签: c++

解决方案


推荐阅读