c++中想将某个结构体参数设置为缺省参数
如果方法和调用都写在一个文件中的话没什么问题。现在是分开了.H和.CPP,然后总是出现外部链接错误。在.H中我先声明了结构体Struct,staticconstStruc...
如果方法和调用都写在一个文件中的话没什么问题。现在是分开了.H和.CPP,然后总是出现外部链接错误。
在.H中我先声明了结构体Struct,static const Struct A; 函数Add(int a,Struct temp=A),
在.CPP中,
Add(int a,Struct temp)
{
//函数体
}
然后在控制台程序中调用这个函数时就会发生外部连接错误。如果是把函数写在控制台程序中就没问题。请问如何解决?
如果我直接在测试文件中test.cpp中写如下代码,是可以运行且无错误的:
static const Point posConst={0,0,0};
int Add(int c,Point posMid=posConst)
{
return c+posMid.x;
}
int _tmain(int argc, _TCHAR* argv[])
{
Point posTest;
posTest.x=3;
cout<<Add(2,posTest)<<endl;
cout<<Add(2)<<endl;
int q;
cin>>q;
return 0;
};
我现在就是不知道声明和定义分开写的的话改怎么写,而且.h中声明的时候也没法给结构体赋初值,别处又无法修改const结构体,该怎么办呢?
如果知道的话麻烦讲解下,十分感谢! 展开
在.H中我先声明了结构体Struct,static const Struct A; 函数Add(int a,Struct temp=A),
在.CPP中,
Add(int a,Struct temp)
{
//函数体
}
然后在控制台程序中调用这个函数时就会发生外部连接错误。如果是把函数写在控制台程序中就没问题。请问如何解决?
如果我直接在测试文件中test.cpp中写如下代码,是可以运行且无错误的:
static const Point posConst={0,0,0};
int Add(int c,Point posMid=posConst)
{
return c+posMid.x;
}
int _tmain(int argc, _TCHAR* argv[])
{
Point posTest;
posTest.x=3;
cout<<Add(2,posTest)<<endl;
cout<<Add(2)<<endl;
int q;
cin>>q;
return 0;
};
我现在就是不知道声明和定义分开写的的话改怎么写,而且.h中声明的时候也没法给结构体赋初值,别处又无法修改const结构体,该怎么办呢?
如果知道的话麻烦讲解下,十分感谢! 展开
2个回答
展开全部
在CPP中定义全局变量
const Struct A;
然后在h中
extern Struct A;
希望能帮助你,满意请采纳,谢谢
const Struct A;
然后在h中
extern Struct A;
希望能帮助你,满意请采纳,谢谢
追问
还是会有报错。你说的方法我不是很清楚,例如什么时候应该设置函数的缺省值?
比方说,我在
Point.h中声明了const struct point{int x;int y} testpoint,和方法int Add(int x,point para=testpoint);
Point.cpp中定义了方法int Add(int x,point para){//}
然后就出现外部无法解析的错误。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
搜一下:c++中想将某个结构体参数设置为缺省参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询