社区
C语言
帖子详情
关于作用域
GhostAdz
2003-08-18 07:33:14
struct S1{int a;char b;};
和
struct S1{int a;char bb;};
分别在两个不同的文件里
vc下编译是对的,可书上说是错的
因为结构和类只能有一种唯一的定义
不知道为什么
还有一般类的定义放在头文件好
还是cpp文件好呢
...全文
40
17
打赏
收藏
关于作用域
struct S1{int a;char b;}; 和 struct S1{int a;char bb;}; 分别在两个不同的文件里 vc下编译是对的,可书上说是错的 因为结构和类只能有一种唯一的定义 不知道为什么 还有一般类的定义放在头文件好 还是cpp文件好呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wbh0360
2003-08-23
打赏
举报
回复
一楼分析的很正确
金笛子
2003-08-23
打赏
举报
回复
先看看作用域是什么吧
GhostAdz
2003-08-23
打赏
举报
回复
那两个是.cpp文件啊 不是头文件
只是一起编译呀
就象 int a;和int a=9;是两个.cpp文件里的一样呀
hunter0912
2003-08-21
打赏
举报
回复
引用的时候把那两个头文件包含到一起的话就会报错了
否则不报错
VC++7
leialen
2003-08-21
打赏
举报
回复
结构和类都放在头文件里定义比较好。但现在两个文件用是可以的,包含在一起时会有冲突的,叫重复定义。我们先要了解编译器要做的工作范围是什么。
leialen
2003-08-21
打赏
举报
回复
定义结构和类的时候系统没有为之分配内存,当用结构或类定义对象的时候才分配了空间。
int a = 6;
int a = 9;
出错就是内存里有一个地方已经分配给int a = 6;了,会有冲突。
GhostAdz
2003-08-21
打赏
举报
回复
真的没人知道吗
GhostAdz
2003-08-19
打赏
举报
回复
up myself
GhostAdz
2003-08-19
打赏
举报
回复
这两个结构不相同吧书上说违反ODR
One-Definition Rule单一定义规则
比如我在两个文件里分别定义
int a=9;和int a=6;
就会报错啊
可是为什么结构不报呢
GhostAdz
2003-08-19
打赏
举报
回复
定义没放在头文件里
分别放在两个cpp里
书上也是说这样是错的
但是我的编译器没报(struct S)
vc 6.0
caomuyong1
2003-08-19
打赏
举报
回复
定义放在头文件好一些吧
实现放在CPP中好一些,这是软件工程的最低访问权限原则
imeng99
2003-08-19
打赏
举报
回复
你在引用的时候把那两个头文件包含到一起了吗?如果这样的话,就会报错了。
GhostAdz
2003-08-19
打赏
举报
回复
up
playboyxp
2003-08-18
打赏
举报
回复
vc是一个开发环境,编译器不是标准的
johnxk
2003-08-18
打赏
举报
回复
楼上的楼上已经分析的很透彻了!
minghui000
2003-08-18
打赏
举报
回复
路过UP一下
grail0922
2003-08-18
打赏
举报
回复
这其实是两个完全相同的struct
放在不同的文件里面可以通过;
但在引用时,#include 了谁就使用谁。
类的定义一般放在.h文件中,实现放在.cpp文件中,主要是为了使用的方便。struct一般只是定义各种数据,放在哪里都无所谓。
但模板类不是的,它的声明和实现放在一个文件里面一般是头文件里面。因为它在编译时没有固体的类型,分开的话,会找不到实现。
JavaScript关于
作用域
、
作用域
链和闭包的理解
作用域
先来谈谈变量的
作用域
变量的
作用域
无非就是两种:全局变量和局部变量。 全局
作用域
: 最外层函数定义的变量拥有全局
作用域
,即对任何内部函数来说,都是可以访问的:<script> var outerVar = "outer"; function fn(){ console.log(outerVar); } fn();//res
前端面试题-10-11
作用域
作用域
链
一、
作用域
作用域
是变量的可访问范围,即
作用域
控制着变量与函数的可见性和生命周期。(参考js垃圾回收)
作用域
就是一个独立的地盘,让变量不会外泄、暴露出去。也就是说
作用域
最大的用处就是隔离变量,不同
作用域
下同名变量不会有冲突。 常见的
作用域
主要分为几个类型:全局
作用域
(global/window)、局部
作用域
、块级
作用域
、动态
作用域
。 1.全局
作用域
在代码中任何地方都能访问到的对象拥有全局
作用域
, (1)最外层的函数(在任意位置都能访问)和最外层的变量拥有全局
作用域
(2)未经定义而直接赋值的变量
【经典面试题】JS
作用域
、
作用域
链、预解析
目录 一、
作用域
1. 全局
作用域
(Global Scope) 2. 局部
作用域
(Local Scope) 3. 块级
作用域
二、
作用域
链 三、预解析 一、
作用域
作用域
是可访问的变量的集合。在JavaScript中,
作用域
为可访问变量,对象,函数的集合,它分为局部
作用域
和全局
作用域
。
作用域
决定了这些变量的可访问性(可见性)。 1. 全局
作用域
(Global Scope) 在代码中任何地方都能访问到的对象拥有全局
作用域
,一般来说以下几种情形拥有全局
作用域
:(1)最外层函......
Js中的
作用域
和
作用域
链
Js中的
作用域
和
作用域
链 前言 阅读本文,请先阅读:Js中的函数相关:创建函数的三种方式、函数的形参和实参、返回值、return、break、continue的区别、重载和arguments、匿名函数、回调函数 阅读本文,请千万不要阅读:Js中面向对象的三大特点:封装、继承、多态 1.
作用域
1.1 定义:
作用域
是一个变量的可用范围,
作用域
的本质是一个保存变量的对象,
作用域
避免了不同范围内的数据的相互干扰。 1.2. Js中的
作用域
分为2级: (1). 全局
作用域
:window对象 i. 专
函数的
作用域
函数的
作用域
今天给大家分享一下函数里面关于
作用域
这块内容,它也是很重要的一块内容哦。 首先,我先来说一说什么是
作用域
。
作用域
就是一个变量可以生效的范围,一个变量他不是在所有的地方都可以使用的,而这个变量的使用范围就是它的
作用域
。 一、
作用域
分为全局
作用域
和局部
作用域
。 1.全局
作用域
: 全局
作用域
是最大的
作用域
,在全局
作用域
中定义的变量可以在任何地方使用。在一个页面打开的时候,浏览器会自动给我们...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章