在 C++ 中,是否有更有效的编写方式:
ImageButton* imageButton;
ImageButton* imageButton1;
ImageButton* imageButton2;
ImageButton* imageButton3;
等等而不写出所有的行?我有超过 1000 个按钮。我希望有更好的方法来写这个。
谢谢
在 C++ 中,是否有更有效的编写方式:
ImageButton* imageButton;
ImageButton* imageButton1;
ImageButton* imageButton2;
ImageButton* imageButton3;
等等而不写出所有的行?我有超过 1000 个按钮。我希望有更好的方法来写这个。
谢谢
如果您坚持使用多个变量,请在一行中执行此操作。
ImageButton *imageButton, *imageButton1, *imageButton2 ;
您也可以通过某种方法消除星星,但这种方法仍然几乎与您的方法一样差或好。如果您使用对象数组会更好。
ImageButton [] ;
或者一个动态的,如果你想在之后发展它。
ImageButton * imagebutton = new ImageButton [size] ;
你必须这样做:
ImageButton *imageButton, *imageButton1, *imageButton2, *imageButton3;
换句话说,*
必须分别为每个变量存在。或者你可以这样做:
typedef ImageButton* ImageButtonPtr ;
ImageButtonPtr imageButton, imageButton1, imageButton2, imageButton3;
nButtons = 1000
std::vector<ImageButton> images;
images.assign(nButtons, ImageButton())
这个呢?:
#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;
}