c++ - 初始化用户定义类的指针 vector

标签 c++ class pointers vector

我试图初始化一个指针 vector ,但是出现了一些错误,代码和错误都在下面

class tr
{
public:
    int n = 26;
    vector<tr* >  a(n  ,NULL);

};

我得到的错误是:
try_class.cpp:7:25: error: ‘n’ is not a type
        vector<tr* >  a(n  ,NULL);
                        ^
try_class.cpp:7:29: error: expected identifier before ‘__null’
        vector<tr* >  a(n  ,NULL);
                            ^~~~
try_class.cpp:7:29: error: expected ‘,’ or ‘...’ before ‘__null’

我不知道我的代码出了什么问题

最佳答案

不允许 parent 进行成员初始化(以避免大多数烦人的解析问题)。

您可以改为:

class tr
{
public:
    int n = 26;
    std::vector<tr*>  a{std::size_t(n), nullptr};
};

要么
class tr
{
public:
    int n = 26;
    std::vector<tr*> a = std::vector<tr*>(n, nullptr);
};

关于c++ - 初始化用户定义类的指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422108/

相关文章:

java - 使用计时器类显示针对按钮单击的圆形进度条

c++ - 通过 `void *` 和 C++ `extern "C"` 函数调用在 C 中初始化一个 C++ 类

c++ - Windows 后台处理程序究竟是如何决定要发送给打印处理器的数据类型的?

c++ - C++17 std::basic_string_view 是否会使 C 字符串的使用无效?

c++ - 试图弄清楚这个哈希函数返回什么

c - 将指针传递给结构数组

ios - 通过将收藏夹的指针添加到用户来更新 Parse 类

c++ - 在 vector 中找到 n 个最大值

php - 类定义为另一个类的静态成员

java - 当 foo 由类 ArrayList 而不是接口(interface) List 表示时,使用 foo 不是更容易吗?