2013-07-07 169 views
-2

你們怎麼從這個代碼 找到SX的價值,我的C++初學者,不知道如何解決它 請幫助謝謝C++類初學者

// StarterLab.c : C Program to convert to C++ 
// 

//#include "stdafx.h"  // required for Visual Studio 
#include <string.h> 
#include <stdlib.h> 
#include <stdio.h> 
//#include "MemTracker.h" 

#pragma warning (disable:4996) 

using namespace std; 

struct variable 
{ 

friend void showCalculation(variable a); 

private: 
    int x; 
    int y; 
    int sum; 

public: 
    void Calculate(int x,int y); 

}; 


void showCalculation(variable a) 
{ 
    printf("%d",a.sum); 
}; 

void variable:: Calculate (int x,int y) 
{ 
    sum = x + y; 
}; 

int main() 
{ 

    variable s; 
    s.Calculate(7, 6); 
    showCalculation(s); 
    printf("%d",s.x); 
} 

你們怎麼找到的價值SX從這個代碼 我的C++初學者,不知道如何解決它 請幫助謝謝

+0

決不包括Visual Studio所需的stdafx.h。只有當你使你的項目使用預編譯頭文件。 – chris

回答

0

變量x私人,所以你不能直接訪問它。你可以添加一個成員函數來得到它:

int variable::GetX() { 
    return x; 
} 

printf("%d", s.GetX()); 
0

,你不能訪問s.x因爲x是一個私有成員。你有兩個選擇。

創建getter

int variable::X() { return x; } 

或使其public

public: 
    int x; 
    int y; 
    int sum; 

注意,使用getter/setter方法是這樣做的適當方式。

+0

只要一個吸氣和安裝員成爲解決方案,你就不得不懷疑他們是否應該真的有完全訪問該成員。 – chris