为什么我不能在.h文件中声明一个向量?

erb*_*bal 3 c++

我有一个很小的.h文件:

#include "stdafx.h"
#ifndef BIGNUM_H
#define BIGNUM_H
#include <vector>

class bignum{

private:
    std::vector<int> num;
    num.resize(4);

};
#endif
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

  • 例外类型speciefier
  • 此声明没有存储类或类型说明符

我错过了什么?

Bor*_*der 10

您不能在类声明中的成员变量上调用方法.如果要将向量的大小调整为4,请在类构造函数中执行此操作(或者在另一个函数中,但构造函数是目前最好的位置).

在您的cpp文件中,您可以执行以下操作:

bignum::bignum() { num.resize(4); }
Run Code Online (Sandbox Code Playgroud)

要么:

bignum::bignum(): num(4) {}
Run Code Online (Sandbox Code Playgroud)

第二个调用带有size参数的向量构造函数.或者您可以直接在.h文件中执行此操作:

class bignum{
    bignum(): num(4) {} // version 1
    bignum(): num() { num.resize(4); }  // version 2

private:
    std::vector<int> num;
};
Run Code Online (Sandbox Code Playgroud)