如何在c ++中访问非静态数据成员

时间:2014-01-11 13:38:57

标签: c++ windows

我正在尝试使用以下方法访问系统温度:http://www.alcpu.com/CoreTemp/developers.html

如您所见,数据结构如下:

typedef struct core_temp_shared_data
{
    unsigned int    uiLoad[256];
    unsigned int    uiTjMax[128];
    unsigned int    uiCoreCnt;
    unsigned int    uiCPUCnt;
    float       fTemp[256];
    float       fVID;
    float       fCPUSpeed;
    float       fFSBSpeed;
    float       fMultiplier;    
    char        sCPUName[100];
    unsigned char   ucFahrenheit;
    unsigned char   ucDeltaToTjMax;
}CORE_TEMP_SHARED_DATA,*PCORE_TEMP_SHARED_DATA,**PPCORE_TEMP_SHARED_DATA;

但是,我是c ++编程的新手,并且不了解如何访问其中一个数据的数据。我试过这个:

cout << core_temp_shared_data::fTemp;

但它只是吐出这个错误代码:

error: invalid use of non-static data member 'core_temp_shared_data::fTemp'|

什么是有效用途?

2 个答案:

答案 0 :(得分:1)

创建该类型的新对象,将成员设置为有意义的值,并通过该对象访问它。

core_temp_shared_data obj;
obj.fMultiplier = 0;
std::cout << obj.fMultiplier;

答案 1 :(得分:1)

您需要像在C中一样创建struct / class的实例。

CORE_TEMP_SHARED_DATA shared_data;
shared_data.fVID = 0.5f;

或通过动态分配:

PCORE_TEMP_SHARED_DATA shared_data = new CORE_TEMP_SHARED_DATA;
shared_data->fVID = 0.5f;