MyButton * m_pDevBtn[30] = new MyButton(this)
时间: 2024-02-11 22:06:55 浏览: 58
website mybutton 制作软件
这个错误的意思是在你的代码中,你试图在定义`m_pDevBtn`成员变量时使用`new`运算符分配内存,但这种方式只能在类的构造函数中使用。
在C++中,类成员变量的初始化通常都是在构造函数中进行的。如果你需要在构造函数中为`m_pDevBtn`分配内存,你可以这样做:
```cpp
class MyClass {
public:
MyClass() {
for (int i = 0; i < 30; i++) {
m_pDevBtn[i] = new MyButton(this);
}
}
private:
MyButton * m_pDevBtn[30];
};
```
这样,在`MyClass`的构造函数中,将会为`m_pDevBtn`中的每个元素分配一个新的`MyButton`对象,并将`MyClass`的指针作为参数传递给构造函数。
需要注意的是,在类的定义中,你只能对成员变量进行声明,而不能进行初始化。如果你需要在类的定义中对成员变量进行初始化,可以使用类静态常量或枚举常量进行初始化,例如:
```cpp
class MyClass {
public:
static const int MAX_BUTTONS = 30;
private:
MyButton * m_pDevBtn[MAX_BUTTONS];
};
```
这样,在定义`m_pDevBtn`时,将使用常量`MAX_BUTTONS`进行初始化。
阅读全文