设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2413|回复: 13
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

跳转到指定楼层
1
发表于 2011-1-24 17:15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

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

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

点评

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

使用道具 举报

Lv1.梦旅人

百合乡の蕾咪

梦石
0
星屑
55
在线时间
151 小时
注册时间
2011-1-12
帖子
198
3
发表于 2011-1-24 17:55:36 | 只看该作者
本帖最后由 蕾米莉亚·斯卡雷特 于 2011-1-24 17:55 编辑

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

这样就不会有问题了.

或者使用  #pragma once
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

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

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

4
发表于 2011-1-24 19:01:51 | 只看该作者
没事别在.h里包.h,除非万不得已

点评

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

5
 楼主| 发表于 2011-1-24 19:12:41 | 只看该作者
蕾米莉亚·斯卡雷特 发表于 2011-1-24 17:55
#ifndef 标识符
#define 标识符
  ....

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

使用道具 举报

Lv1.梦旅人

CHAOS

梦石
0
星屑
107
在线时间
245 小时
注册时间
2005-11-4
帖子
3521

贵宾

6
发表于 2011-1-24 19:15:31 | 只看该作者
编译器的问题。


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

使用道具 举报

Lv1.梦旅人

蝦米

梦石
0
星屑
95
在线时间
280 小时
注册时间
2006-7-5
帖子
587
7
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
8
发表于 2011-1-25 02:08:40 | 只看该作者
根据面向对象的规则来讲

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

使用道具 举报

Lv1.梦旅人

有事烧纸

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

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

9
发表于 2011-1-26 18:40:21 | 只看该作者
在cpp中包含.h
在.h里声明一下就行了

点评

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

10
 楼主| 发表于 2011-1-26 19:15:48 | 只看该作者
chaochao 发表于 2011-1-24 19:15
编译器的问题。

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-25 08:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表