0

我是C++編程的新手。有條件地執行一個類

下面是具有兩個班,class 1class 2這確實基於來自通過對象指針myclass1myclass2 .The代碼工作正常,但現在我需要做出改變發送的主要功能值一些計算我的代碼,即僅當class1calc函數返回true值時,class2及其成員函數computation應從主函數和算法運行中獲取其值x。即如果class1返回true,則class 2運行else

如果有人能夠提示我一個想法並說出如何繼續,

在此先感謝

代碼

class1.h

class class1 
{ 
public: 
    class1() 
    { 
    }; 
    ~class1() 
    { 
    }; 

    bool calc(int a, int b, int c) 
    { 
    if (some condition){ // returns true or false based on some condition 
    result=true; 
    } 
    else{ 
    result=false; 
    } 

    return result; 
    }; 

class2.h

class class2 
{ 
public: 
    class2() 
    { 
    }; 
    ~class2() 
    { 
    }; 

    int computation (int x) 
    { 
    do some calculations 
    result=1; 
    } 
    return result; 
    }; 

main.cpp中

#include "class1.h" 
#include "class2.h" 

using namespace std; 

int main(int argc, char * argv[]) 

class1* myclass1 = new class1(); 
class2* myclass2 = new class2(); 

int x=0.5, y=0.7, z=0.9; 


int result1 = myclass1->calc(x,y,z); 

int result2 = myclass2-> computation(x); // should be assigned or activated only when result1 is true. 

return 0; 
} 
+4

請避免無用的新 –

+2

我不想脫落粗魯,但我認爲你需要去對C++的控制再次流動的基本知識。 – StoryTeller

+0

您明白'if'因爲您在class1 :: clc()中使用了。在main()中也使用類似的東西。 –

回答

2
int result = 0; 
if(myclass1->calc(x,y,z)) 
    result = myclass2->computation(x); 

注意與Class1,你分配一個boolint - 確保你有適當的類型分配。

0

只需使用如果簡單:

bool result1 = myclass1->calc(x,y,z); 
int result2 = -1; // -1 means not computed in this case 

if(result1){ 
    result2 = myclass2-> computation(x); // should be assigned or activated only when result1 is true. 
} 
+0

'myclass1-> calc(x,y,z);'實際上返回一個'bool'不是_result_。 –

+0

@πάνταῥεῖ你是對的,我只是複製粘貼他的代碼。現在修復。 – RedX