继承定义大小/未定义大小数组,sizeof会出问题:
error: invalid application of ‘sizeof’ to incomplete type ‘const int []’
原因:sizeoof在编译时调用?? 原因未知 先记住
怀疑原因:sizeoof时,数组定义还没加载好
Test1.h
class Test1 {
public:
static const int tnum1[];
};
Test1.cpp
#include "Test1.h"
const int Test1::tnum1[] = {1,2,3,4}; //定义大小也不行
Test2.h
#include "Test1.h"
using namespace std;
class Test2: public Test1 {
public:
static void getT2();
};
Test2.cpp
#include <iostream>
#include "Test2.h"
using namespace std;
int main() {
Test2::getT2();
}
void Test2::getT2(){
cout<<Test1::tnum1[1]; // 可以输出2
// cout<<sizeof(Test1::tnum1); //解开注释就出问题
}