全局变量和内部类之间有什么区别?

时间:2017-10-06 16:48:48

标签: c++ visual-c++

#include "stdafx.h"
#include "CppUnitTest.h"
#include <iostream>
#include <cstdlib>


using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest2

{       
    TEST_CLASS(UnitTest1)
    {
    public:

        int vector [6] = { 14, 10, 11, 19, 2, 25 };
        bool ArrayAreEqual;
        int static compare(const void * x1, const void * x2) 
        {
            return (*(int*)x1 - *(int*)x2); 
        }

        TEST_METHOD(TestMethod1)
        {
            qsort(vector, 6, sizeof(int), compare); 
            for (int ix = 0; ix < 6; ix++)
                std::cout << vector[ix] << " ";
            // TODO: Your test code here


            int TestVector[6] = { 2,10,11,14,19,25 };
            if (std::equal(std::begin(vector), std::end(vector), std::begin(TestVector)))
            {
                ArrayAreEqual = true;
            }

            else
            {
                ArrayAreEqual = false;
            }
            Assert::IsTrue(ArrayAreEqual);

        }

    };
}

在我的代码中,int vector [6] = {14,1,10,11,19,2,25};只能用元素数量来定义[6](否则它不显示不完整的类型),但是如果这个变量是全局的,它可以没有大小定义,比如int vector [] = {14,1,10,11,19 ,2,25}; 为什么会这样?

1 个答案:

答案 0 :(得分:2)

与所有其他初始值设定项不同,类内(非静态)成员初始值设定项可以是overridden by a constructor's member initializer list。由于它们可能被忽略,因此它们不能用于指定数组的长度。