JUST DO IT ~

我只想当个程序员

c++ 全局变量定义在那里?

我老是搞错.

 

boy.h

class Boy

 

boy.cpp

Boy  g_boy;

 

使用全局变量

Collection.h

#include “boy.h”

extern Boy g_boy;

 

似乎更优雅的方式

#ifdef  _BOY__HH__
extern  Boy  g_boy ;
#endif

 

 

错误方式:    定义宏根本解决不了这个问题

boy.h
#pragma once
#ifndef _BOY__HH__
#define _BOY__HH__ 

class  boy

Boy  g_boy;

#endif

编译错误

1> .obj : error LNK2005: "class class 全局变量名 " (?g_CITSCache@@3VMarketCache@@A) 已经在 XXX.obj 中定义
1>  正在生成非 SAFESEH 映像。
1>D:\XXX.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

 

等我看了编译原理再来解释.

 

如何防止循环引用?

A->b->c->A

posted on 2013-09-04 09:35 小高 阅读(324) 评论(0)  编辑  收藏 所属分类: C


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2013年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

常用链接

留言簿(3)

随笔分类(352)

收藏夹(19)

关注的blog

手册

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜