当前位置:  开发笔记 > 编程语言 > 正文

如何在c ++头中声明数组?

如何解决《如何在c++头中声明数组?》经验,为你挑选了1个好方法。

这与其他一些问题有关,例如:这个,以及我的一些其他问题.

在这个问题和其他问题中,我们看到我们可以在一个很好的步骤中声明和初始化字符串数组,例如:

const char* const list[] = {"zip", "zam", "bam"}; //from other question

这可以在没有麻烦的函数的实现中完成,或者在任何范围之外的.cpp文件的主体中完成.

我想要做的是将这样的数组作为我正在使用的类的成员,如下所示:

class DataProvider : public SomethingElse
{
    const char* const mStringData[] = {"Name1", "Name2", "Name3", ... "NameX"};

public:
    DataProvider();
    ~DataProvider();

    char* GetData()
    {
        int index = GetCurrentIndex(); //work out the index based on some other data
        return mStringData[index]; //error checking and what have you omitted
    }

};

但是,编译器抱怨并且我似乎无法找出原因.是否可以在类定义的一个步骤中声明和初始化这样的数组?有更好的替代方案吗?

我确信这是一个非常业余的错误,但一如既往,我非常感谢你的帮助和建议.

干杯,

XAN



1> Stefan Rådst..:

使用关键字static和external initialization使数组成为类的静态成员:

在头文件中:

class DataProvider : public SomethingElse
{
    static const char* const mStringData[];

public:
    DataProvider();
    ~DataProvider();

    const char* const GetData()
    {
        int index = GetCurrentIndex(); //work out the index based on some other data
        return mStringData[index]; //error checking and what have you omitted
    }

};

在.cpp文件中:

const char* const DataProvider::mStringData[] = {"Name1", "Name2", "Name3", ... "NameX"};


是的,我认为省略大小是有效的,那么阵列是不完整的.但是在标题中,你确实不知道数组的大小.所以也没有尺寸可能----
推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有