读书人

struct的实例在哪怎样定义好?该怎么

发布时间: 2012-02-14 19:19:19 作者: rapoo

struct的实例在哪,怎样定义好?
//-------------------------------------
Params.h
//-------------------------------------
namespace MyParams
{
struct Param1
{
int P00;
int P01;
int P02;
String P03;
String P04;
} Param1_Data;

};


//-------------------------------------
App.C
//-------------------------------------

#include "Params.h "
using Namespace MyParams;

Main
{
ShowMessage( Param1_Data.P00 );

}

编译时 Link Warning:
[Linker Warning] Public symbol MyParams::P00 ' defined in both module
Params.Obj And Main.Obj.

????
怎样放置,才能避免出现此错误呢?我想把Param1_Data作为全局变量用,
只想实例化一次。

[解决办法]
.h文件
#include <string>
using namespace std;
namespace MyParams
{
typedef struct Param1
{
int P00;
int P01;
int P02;
string P03;
string P04;
} Param1_Data;

};

.cpp
#include "Params.h "

using namespace MyParams;

Param1_Data mydata;
int main()
{
mydata.P00 ;
return 0;
}
lz很多大小写不分哦
[解决办法]
//Params.h
#include <string>

namespace MyParams
{
struct Param1
{
int P00;
int P01;
int P02;
std::string P03;
std::string P04;
};

};

//Params.cpp

namespace MyParams
{
Param1 Param1_Data;
};


// app.cpp

#include "Params.h "

using Namespace MyParams;

extern Param1 Param1_Data;

void main()
{
ShowMessage( Param1_Data.P00 );

}

[解决办法]
如果在多个文件中要引用mydata,就在其他文件里用
external Param1_Data mydata;


[解决办法]
例如:
在stdafx.cpp中加入:
Param1_Data mydata;
然后在stdafx.h中加入:
external Param1_Data mydata;
这样定义以后无论在什么文件中都是可见的.

读书人网 >C++

热点推荐