define的用法??

梦之 2013-06-29 02:19:36
我定义了宏
#define a 2,1

class CBit
{
CBit( int bit);
CBit( int axis,int act);
}

class CIO
{
get_in(CBit &BIT);
}


CIO in;
in.get_in(CBit(a));
为什么 a这里调用的 是 CBit( int bit)??
什么原因导致如此???
如果直接 in.get_in(CBit(2,1))又没问题??
求解!!!!!!!!!!
...全文
212 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦之 2013-07-01
  • 打赏
  • 举报
回复
没人帮忙下么??
梦之 2013-06-29
  • 打赏
  • 举报
回复
既然不能如此放在 数组里面,那要如何 才行呢??
梦之 2013-06-29
  • 打赏
  • 举报
回复
我查了下,的确是代码出了问题; 我把 a 放在数组里面 int nBit[] = {a} 才导致如此;
www_adintr_com 2013-06-29
  • 打赏
  • 举报
回复
看看编译器把宏展开后的代码
majun298 2013-06-29
  • 打赏
  • 举报
回复
Test.cpp
#include "Test.h"


CBit::CBit(int bit)
{
}

CBit::CBit( int axis,int act)
{

}

CBit::~CBit(void)
{
}

void CIO::get_in(CBit &BIT)
{

}
Test.h
#pragma once

#define a 2,1


class CBit
{
public:
	~CBit(void);
   CBit( int bit);
   CBit( int axis,int act);
};

class CIO
{
public:
	  void get_in(CBit &BIT);
};
调用

CIO in;
	in.get_in(CBit(a));
应该就这样了吧,简单的测试
梦之 2013-06-29
  • 打赏
  • 举报
回复
有代码能看看么?
majun298 2013-06-29
  • 打赏
  • 举报
回复
我这边调用的也是双参数那个
梦之 2013-06-29
  • 打赏
  • 举报
回复
直接调用 确实是没问题,当把 那个 函数作为参数来用, 就不行了!!
梦之 2013-06-29
  • 打赏
  • 举报
回复
不明白啊!!
starytx 2013-06-29
  • 打赏
  • 举报
回复
我这边测试调用的是双参数的那个
mujiok2003 2013-06-29
  • 打赏
  • 举报
回复
http://codepad.org/TRsUpS3P 你的代码是别的问题。

64,654

社区成员

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

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