3

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

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

class bignum{

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

};
#endif

我收到以下错误消息:

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

我错过了什么?

4

2 回答 2

11

您不能在类声明中调用成员变量的方法。如果要将向量的大小调整为 4,请在类构造函数中进行(或在另一个函数中,但构造函数是迄今为止这样做的最佳位置)。

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

bignum::bignum() { num.resize(4); }

或者:

bignum::bignum(): num(4) {}

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

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

private:
    std::vector<int> num;
};
于 2013-07-14T18:19:19.093 回答
4

您不能num.resize(4);在函数外部调用。您可以在声明时使用类的构造函数或 C++11 初始化。

class bignum
{
private:
    std::vector<int> num = std::vector<int>(4); // C++11
};

class bignum
{
    bignum() : num(4) {} // C++03 and C++11
private:
    std::vector<int> num;
};
于 2013-07-14T18:19:47.213 回答