Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cli C++/Cli文本数组初始化 我试图在托管C++中创建一个常数数组,并且被卡住了。我四处搜索过,但没有找到任何好的例子来说明如何做到这一点_C++ Cli - Fatal编程技术网

C++ cli C++/Cli文本数组初始化 我试图在托管C++中创建一个常数数组,并且被卡住了。我四处搜索过,但没有找到任何好的例子来说明如何做到这一点

C++ cli C++/Cli文本数组初始化 我试图在托管C++中创建一个常数数组,并且被卡住了。我四处搜索过,但没有找到任何好的例子来说明如何做到这一点,c++-cli,C++ Cli,我想要的是相当于: const unsigned char myConstArray = {1,2,3,4,5,6}; 现在我盯着这个: literal array<Byte>^ myConstArray = gcnew array<Byte> { 1,2,3,4,5,6}; literal数组^myconstrarray=gcnew数组{1,2,3,4,5,6}; 我收集的数据不正确,因为VisualStudio抱怨我不能在常量表达式中使用gcnew。不知道到哪里

我想要的是相当于:

const unsigned char myConstArray = {1,2,3,4,5,6};
现在我盯着这个:

literal array<Byte>^ myConstArray = gcnew array<Byte> { 1,2,3,4,5,6};
literal数组^myconstrarray=gcnew数组{1,2,3,4,5,6};
我收集的数据不正确,因为VisualStudio抱怨我不能在常量表达式中使用gcnew。不知道到哪里去,任何帮助都将不胜感激

干杯


David

它不能像那样使用
文本
,因为:

声明时必须初始化标记为
literal
的数据成员,并且值必须是常量整数、枚举或字符串类型。从初始化表达式类型到静态常量数据成员类型的转换不得要求用户定义的转换

…然而,
literal
相当于
static const
,但通过使用
static const
它编译时没有错误,这是非常奇怪的

创建只读属性是返回数组的另一种方法:

ref class Test1 {
public:
    Test1() {
        myArray = gcnew cli::array<Byte> { 1, 2, 3, 4, 5, 6};
    }

    property cli::array<Byte>^ MyArray {
        cli::array<Byte>^ get() {
            return myArray;
        };  
    }

private:

    cli::array<Byte>^ myArray;

};
ref类Test1{
公众:
Test1(){
myArray=gcnewcli::array{1,2,3,4,5,6};
}
属性cli::数组^MyArray{
cli::数组^get(){
返回myArray;
};  
}
私人:
cli::array^myArray;
};
std::初始值设定项列表>({1,2,3,4,5,6};

我不确定这是否适用于托管C++,但是初始化列表是C++固有的构造,允许应用开始和结束语义,而不是数组索引。因此只要一个基于远程的工作,就可以使用这个数组。< /p>嗯。如果我将它改为静态const,我会得到警告。“不支持此类型上的常量/易失性限定符".现在编译时它确实超过了这一点。我想我可以制作一个常规数组,将其私有化,如果没有其他方法的话,希望它不会被覆盖。我没有想到!谢谢!效果很好,实际上简化了一点。再次感谢!请解释这段代码是什么。现在,它不是很有用的答案,有被删除的危险。

std::initializer_list<unsigned char>>({1, 2, 3,4,5,6};