在C ++中,是否有更有效的写作方式:
ImageButton* imageButton;
ImageButton* imageButton1;
ImageButton* imageButton2;
ImageButton* imageButton3;
等没有写出所有的行?我有超过1000个按钮。我希望有更好的 写这篇文章的方式。
由于
答案 0 :(得分:4)
如果您坚持使用多个变量,请在行中执行此操作。
ImageButton *imageButton, *imageButton1, *imageButton2 ;
你也可以通过一种方法来消除恒星,但这种方法几乎与你的方法一样差或更好。 如果你使用一组对象,那会更好。
ImageButton [] ;
如果你想在之后成长,那就是动态的。
ImageButton * imagebutton = new ImageButton [size] ;
答案 1 :(得分:0)
你必须这样做:
ImageButton *imageButton, *imageButton1, *imageButton2, *imageButton3;
换句话说,每个变量必须单独存在*
。
或者你可以这样做:
typedef ImageButton* ImageButtonPtr ;
ImageButtonPtr imageButton, imageButton1, imageButton2, imageButton3;
答案 2 :(得分:0)
nButtons = 1000
std::vector<ImageButton> images;
images.assign(nButtons, ImageButton())
答案 3 :(得分:-1)
这是什么? :
#include<iostream>
using namespace std;
class ImageButton
{
};
int main()
{
int i;
int BUTTONSIZE=32*32; // 32x32 pixels
int BUTTONAMOUNT=1000; // 1000 buttons
ImageButton **imagebutton = 0;
//memory allocated for 1000 elements , BUTTONAMOUNT=1000
imagebutton = new ImageButton *[BUTTONAMOUNT] ;
//memory allocated for elements of each button.
for( i = 0 ; i < BUTTONAMOUNT ; i++ )
{
imagebutton[i] = new ImageButton[BUTTONSIZE];
cout<<i<<". \n";
}
//free the allocated memory
for( i = 0 ; i < BUTTONAMOUNT ; i++ ) delete [] imagebutton[i] ;
delete [] imagebutton ;
return 0;
}