读书人

类对象指针返回失败(小疑点)

发布时间: 2012-11-08 08:48:11 作者: rapoo

类对象指针返回失败(小问题)
看看吧

------------------------------------
//Machine类

#pragma once

ref class Machine
{
public:
Machine(void);//默认构造函数
Machine(const int machine_serial_num,const int machine_PRI);
Machine *get_pt();//报错
private:
int m_machine_serial_num;//编号
int m_machine_PRI;//优先级
};

Machine::Machine(const int machine_serial_num,const int machine_PRI)
{
m_machine_serial_num=machine_serial_num;
m_machine_PRI=machine_PRI;
}

Machine* Machine::get_pt()
{
return this;
}

编译错误:

1>c:\documents and settings\administrator\my documents\visual studio 2005\projects\map容器指针\map容器指针\Machine.h(8) : error C3699: '*' : cannot use this indirection on type 'Machine'

请指教


[解决办法]

C/C++ code
//---gd.h---#if !defined _gd_h_ #define _gd_h_ #include <iostream> #include <map> #include "Machine.h" using namespace std;typedef map <int,Machine*>::value_type ValType; map <int,Machine*> g_machine; #endif
[解决办法]
探讨
To danny1221
我按你11楼的代码段做出现了以下的编译错误

1>init_machine.obj : error LNK2005: "public: __thiscall Machine::Machine(int,int)" (??0Machine@@QAE@HH@Z) 已经在 Machine.obj 中定义
1>init_machine.obj : error LNK2005: "public: class Machine * __thiscall Machine::get_pt(void)" (?get_pt@Machine@@QAEPAV1@XZ) 已经在 Machine.obj 中定义
1>init_machine.obj : error LNK2005: "public: __thiscall…

读书人网 >C++

热点推荐