IBM专家请进,关于AIX上不同名词空间访问的问题!

dnboy 2008-05-09 04:23:41
我在名称空间A中申请了一个变量(非A、非B的类的实例)s,在名词空间B中对其进行了new,并在B中对该实例s中的一个成员进行了赋值,然后在A中调用S的一个方法,S这个方法不能得到刚才赋的值,而在A中查看堆栈可以看到这个值,对于这种情况需要设置什么用的编译参数?(在windows上面无此问题),AIX上的编译参数为:-qlanglvl=EXT -qstaticinline -qtemplateregistry -q64

如下://非关键代码已经省略
class C
{
public:
C():m_pSQL(NULL){}
~C(){);

void SetSQL(const char* pSQL)//设置查询SQL语句
{
int iLen = strlen(pSQL);
m_pSQL = new char[iLen + 1];
strcpy(m_pSQL, pSQL);
m_pSQL[iLen] = 0;
}

void Open();//打开数据库连接
bool Next()//获取查询结果的下一条记录
{
if(NULL == m_pSQL)
{ //
throw "error"; //此处报错
}
**********
}
private:
char* m_pSQL;

};

namespace A
{
class A1
{
public:
void Function1(const char* pSQL)
{
m_pC->SetSQL(pSQL);
}
private:
C m_pC;
};
}

namespace B
{
using namespace A;
class B1:A1
{
public:
B1(){m_pC = new C();};
void LoadData()
{
m_pC->Next();///此处调用时,查看m_pC->m_pSQL不为空,但是进入到Next后,发现为空
}
};
}


程序逻辑:
B1 p = new B1();
p->Function1("select ....");
p->LoadData();

...全文
95 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dnboy 2008-05-16
  • 打赏
  • 举报
回复
up

64,650

社区成员

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

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