查看: 2953|回复: 13

[讨论] C++的面向对象真是囧啊

[复制链接]
梦石
0
星屑
506
在线时间
340 小时
注册时间
2010-12-15
回帖
852

开拓者

发表于 2011-1-24 17:15:03 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
真是囧啊
根据面向对象的规则来讲,我要建立三个类就需要三个.h和三个.cpp
那么好了
a.h 里面内容是
#include b.h
b.h里面内容是
#include c.h
c.h里面内容是
#include a.h

那么好了,不论怎么写都会导致编译出错 - -
乌有君
乌有君  发表于 2011-1-24 17:46:03
本帖最后由 匿名 于 2011-1-24 17:47 编辑

当你知道为什么要这样做的时候,你就自然也会不由自主地这样去做。
然而,一般不会有人在课堂上告诉你为神马要那样去做。

当然石器更囧囧有神的数据结构导致了现在有时一个实例都放一个文件来玩。

点评

蛇子前辈好  发表于 2011-1-26 18:47
回复

使用道具 举报

百合乡の蕾咪

梦石
0
星屑
75
在线时间
151 小时
注册时间
2011-1-12
回帖
196
发表于 2011-1-24 17:55:36 | 显示全部楼层
本帖最后由 蕾米莉亚·斯卡雷特 于 2011-1-24 17:55 编辑

#ifndef 标识符
#define 标识符
  ....
#endif

这样就不会有问题了.

或者使用  #pragma once
回复

使用道具 举报

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
回帖
6429

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

发表于 2011-1-24 19:01:51 | 显示全部楼层
没事别在.h里包.h,除非万不得已

点评

两个类写在两个.h里了, 如果我要从a类调用b类里的东西,b类调用c类里的东西,c类调用a类里的东西怎么办 - -  发表于 2011-1-24 19:13
神隐中,偶尔诈尸
回复

使用道具 举报

梦石
0
星屑
506
在线时间
340 小时
注册时间
2010-12-15
回帖
852

开拓者

 楼主| 发表于 2011-1-24 19:12:41 | 显示全部楼层
蕾米莉亚·斯卡雷特 发表于 2011-1-24 17:55
#ifndef 标识符
#define 标识符
  ....

- -用了,两个都用了
我不会犯这种低级错误,但是他就是报错
回复

使用道具 举报

CHAOS

梦石
0
星屑
92
在线时间
244 小时
注册时间
2005-11-4
回帖
3418

贵宾

发表于 2011-1-24 19:15:31 | 显示全部楼层
编译器的问题。


chaochao于2011-1-24 19:16补充以下内容:
换个编译器试试看。
梦想世界,在你伸手!
回复

使用道具 举报

蝦米

梦石
0
星屑
130
在线时间
280 小时
注册时间
2006-7-5
回帖
553
发表于 2011-1-25 01:33:37 | 显示全部楼层
回复 tamashii 的帖子

Q:如果我要从a类调用b类里的东西,b类调用c类里的东西,c类调用a类里的东西怎么办

A:先声明其中类的存在
e.g.
class A;
class C{
//use sth in class A
}
class B{
//use sth in class C
}
class A{
//use sth in class B
}


江湖大虾仁于2011-1-25 01:34补充以下内容:
另外你编译报的什么错也要说下啊。。。
虾米的小站:
http://www.jhdxr.com
回复

使用道具 举报

梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-1-25 02:08:40 | 显示全部楼层
根据面向对象的规则来讲

这不是“面向对象的规则”,这是 C++ 标准以及 parser 的限制问题。大部分 C++ parser 默认都不会检查循环依赖性,直接从 #include 包含的位置展开代码,所以需要写代码的人自己去做。
su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
回帖
6429

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

发表于 2011-1-26 18:40:21 | 显示全部楼层
在cpp中包含.h
在.h里声明一下就行了

点评

VC2010特囧,如果在.h里面找不到包含的项目他报错  发表于 2011-1-26 19:16
神隐中,偶尔诈尸
回复

使用道具 举报

梦石
0
星屑
506
在线时间
340 小时
注册时间
2010-12-15
回帖
852

开拓者

 楼主| 发表于 2011-1-26 19:15:48 | 显示全部楼层
chaochao 发表于 2011-1-24 19:15
编译器的问题。

难道让我用gpp编译器么
话说其他的编译器能支持vc库么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部