结构体定义函数的问题,C和C++高手进

c372662316 2011-04-08 09:54:54
如题,在结构体中如何定义函数,我在结构体中申明了函数,但在结构体外用实现函数时,怎么用不了结构体中的成员?
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
c372662316 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 seeseecn 的回复:]
楼主是这个意思吗?一下代码vc6.0编译通过!


typedef struct test
{
int a;
void Show();
}TEST;

void TEST::Show()
{
cout << a << endl;
}

void main()
{
TEST A;
A.a = 1;
A.Show();

}
[/Quote]

恩,解决了;谢谢大家;
c372662316 2011-04-08
  • 打赏
  • 举报
回复
恩,解决了直接把函数体都定义在结构体中,但是能不能只在结构体中声明函数,把函数写在结构体外呢,如下代码:
typedef struct queue{
int q_size[100000];
int (*initqueue)(void);
int (*enqueue)(int v0);
int (*dequeue)(void);
bool (*queue_empty)(void);

}queue1,queue2;

void initqueue(void)
{
tail= head=0;
}

void enqueue(int v0)
{
q_size[tail]=v0;
tail++;
}

int dequeue(void)
{
head++;
return q_size[head-1];
}

bool queue_empty(void)
{
return(head==tail);
}

此时vc显示q_size未定义;
SEESEECN 2011-04-08
  • 打赏
  • 举报
回复
楼主是这个意思吗?一下代码vc6.0编译通过!


typedef struct test
{
int a;
void Show();
}TEST;

void TEST::Show()
{
cout << a << endl;
}

void main()
{
TEST A;
A.a = 1;
A.Show();

}
bdmh 2011-04-08
  • 打赏
  • 举报
回复
struct中和类中一样,你怎么用的,实例化了吗
Putin_yhc 2011-04-08
  • 打赏
  • 举报
回复
这个结构体里面有一个构造函数,其他函数类似
typedef struct DiskInfo
{
DiskInfo()
{
m_diskIndex = 0;
m_totalDiskInKB = 0;
m_usedDiskInKB = 0;
m_status = 0;
}
unsigned int m_diskIndex;
string m_devName;
string m_mountDir;
unsigned long long m_totalDiskInKB;
unsigned long long m_usedDiskInKB;
unsigned long long m_status;//DiskStatus
} TDiskInfo;
quwei197874 2011-04-08
  • 打赏
  • 举报
回复
c中结构体内是不能定义函数的,c++可以.
bargio_susie 2011-04-08
  • 打赏
  • 举报
回复
无码无真相

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧