2011-11-05 41 views
0

我將如何做一個功能,可以讓你的函數的調用後,打開支架,並宣佈代碼括號內,與此類似:添加到範圍函數調用

openScopeBrackets(); 
{ 
//...code here 
} 
closeScopeBrackets(); 

我已經用OpenGL看到了這一點,太:

glBegin(GL_TRIANGLES); 
{ 
//...code here 
} 
glEnd() 

請幫我...

+0

glBegin做什麼? – Avinash

回答

2

很難說你想要做什麼,而是創建一個本地範圍只是通過增加{}在函數體內部。在此範圍內聲明的變量在其外部不可見。

void doSomething() 
{ 
    int i; 
    { 

     //Local Scope 


    } 
} 
+0

這對函數調用的工作是否一樣? – Omri

+1

@TehCodr你可以放一對括號幾乎_anywhere_來創建一個新的範圍。這就是它的作用:創建一個新的範圍,以便在括號內聲明的變量將在結尾'}處消失。 –

+0

@TehCodr:在你放置'{'&'}'的地方創建一個本地範圍。 –

0

在C/C++中,函數只能從任何其他函數調用。但是我們不能在其他函數中定義函數。因此,不可能首先調用該函數,然後編寫被調用函數的代碼。

void fName(){ 
    otherFunction(){//NOT allowed 
     ...definition for otherFunction 
    } 
} 
+1

GCC接受作爲嵌套函數的語言擴展http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/Nested-Functions.html但它只適用於C,不適用於C++ –

+0

我不'我想嘗試一下func-ception,我只想調用一個函數,然後在括號中放入特定於該函數的函數後面的聲明。參考glBegin和glEnd ... – Omri

0

如果你想在塊的開始和結尾發生一些事情,你可以使用構造/析構函數。

看看QMutexLocker是一個鼓舞人心的例子,看看我的意思。