相关疑难解决方法(0)

您对大项目的首选C/C++标头策略?

在处理大型C/C++项目时,您是否对源文件或头文件中的#include有一些特定规则?

例如,我们可以想象遵循这两个过多的规则之一:

  1. .h文件中禁止使用#include ; 每个.c文件都包含它需要的所有头文件
  2. 每个.h文件应包含其所有依赖项,即它应该能够单独编译而不会出现任何错误.

我想在任何项目之间存在权衡,但你的是什么?你有更具体的规则吗?或任何解决任何解决方案的链接?

c c++ coding-style header include

48
推荐指数
5
解决办法
8427
查看次数

如何正确构建OOP和多文件项目?

作为一名初学程序员,刚刚学习了OOP的基础知识,我遇到了很多关于我的练习程序的基本包含结构的问题.我一直在教自己使用各种书面和在线资源进行编程.但是,这是我的问题(好吧,其中一个......):

一方面,我理解抽象,封装和类之间的低度耦合的重要性,但另一方面,我一直在努力构建我的程序并以允许不同的方式设计我的类在不同的文件中的类来了解彼此.

当然,这是我的一个主要问题,导致草率,hackish代码只能按照我想要的方式工作,我将每个基本的主要OOP抛出窗口并开始用全局变量填充我的代码,向前声明一切到处都是,让班级成员公开.

简单地说:我的编程很乱...... C++是我的第一个编程语言,即使我尽力以面向对象的方式设计/编写,我最终会得到一个丑陋的文件,#包括几乎所有的东西每个文件,以及很少有效的程序和OOP意大利面条代码的奇怪组合!

我是一个自称编程的新手,我接受学习如何构建一个程序需要时间,但我几乎要结束了!我知道我的问题源于我对OOP 有点了解的事实.我知道我想编写处理单个任务的独立类.但与此同时,我不明白如何正确地提醒每个类的程序其他部分的存在.这有点像知道你应该吃什么类型的食物,但不知道如何使用叉...

简而言之,这是我的问题.并进一步跟进我提出的一些更具体的问题:

  • 在C++多文件项目中,将main()函数放在自己的类中是正常/需要的吗?或者将main()留在全局范围内是标准的事情吗?

  • 在之前的程序性程序中,我用C++编写,在main.cpp文件的顶部,在全局作用域中有一个常量变量或#defines并不罕见.例如,可能在程序开始时定义屏幕的尺寸或其他有用信息.OOP会发生什么?是否完全避免了这种做法?或者我是否在项目的每个其他标题中创建MAIN.H文件并将其包含在内?我不知道该怎么办......

  • 在编写我的第一个中等规模的练习OOP程序时,当我开始尝试编写StateMachine类时,我的工作开始戛然而止.我打算让StateMachine类包含程序将使用的所有可能的屏幕状态.但是,出现了一个问题,即我的StateMachine类似乎不知道我的其他一些State类,即使它们都是#included.我见过人们之前做过类的前进声明,是否有必要?我应该在整个地方垃圾邮件发送类的前向声明,还是代码味道?

  • 最后,#include和forward声明命令的顺序是否重要?

我知道这可能是一个超级基本的问题,但是在我从单文件程序c ++初学者程序到多文件OOP编程的过渡中,这给我带来了很大的困难.是否有一些一般的经验法则来构建你的程序,以便一切正常?我一直在使用包含警卫,所以有什么理由不能只在每个源文件中包含#include每个头文件?我应该在每个类的每个头文件中都有#included的common.h文件吗?

我非常感谢社区给予我的任何帮助/建议.我知道在我开始发展我的OOP技能之前,这是一个简单而重要的障碍.我一直试图深入了解保持课程彼此分离的重要性,以至于我不确定如何以一种允许他们真正互相交流的方式真正设置我的课程/文件!非常感谢你的帮助!

c++ oop abstraction interface header

7
推荐指数
1
解决办法
2986
查看次数

将结构/常量保持在单独的标题中

我有一个VECTOR结构,它包含3个整数,i,j和k.我需要在多个头文件中使用此结构.将所有#defines和结构,所有常量移动到标记为"Constants.h"的单独头文件,或者我应该在每个头文件中定义相同的结构(我当前使用它)被认为是不好的做法吗?

c++

3
推荐指数
1
解决办法
676
查看次数

标签 统计

c++ ×3

header ×2

abstraction ×1

c ×1

coding-style ×1

include ×1

interface ×1

oop ×1