在C ++中,是否有更有效的方法来编写多个声明

时间:2012-08-29 18:52:03

标签: c++

在C ++中,是否有更有效的写作方式:

ImageButton* imageButton;
ImageButton* imageButton1;
ImageButton* imageButton2;
ImageButton* imageButton3;

等没有写出所有的行?我有超过1000个按钮。我希望有更好的 写这篇文章的方式。

由于

4 个答案:

答案 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;
}