我有一个很小的.h文件:
#include "stdafx.h"
#ifndef BIGNUM_H
#define BIGNUM_H
#include <vector>
class bignum{
private:
std::vector<int> num;
num.resize(4);
};
#endif
我收到以下错误信息:
- 期望类型说明符
- 此声明没有存储类或类型说明符
我有一个很小的.h文件:
#include "stdafx.h"
#ifndef BIGNUM_H
#define BIGNUM_H
#include <vector>
class bignum{
private:
std::vector<int> num;
num.resize(4);
};
#endif
在类声明中,您无法在成员变量上调用方法。如果您想将向量扩展到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;
};
你不能在函数外调用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;
};