一个箱子是由宝藏组成的。

我以以下方式实现了它:
treasure.hpp
#pragma once
class Treasure{
public:
protected:
private:
//data members
int gold;
};chest.hpp
#pragma once
class Chest{
private:
#include "treasure/treasure.hpp"
public:
protected:
private:
//data members
Treasure treasure;
};**假设两个头文件都使用相应的“.cpp”进行编译,以创建对象文件。
是否适合在胸部的类声明中包含宝藏的头文件?
这对我来说是有意义的,因为我有以下行为:

**Main无法创建或直接访问宝藏。
#include "chest.hpp"
int main(int argc, char** argv){
Chest chest;
}我从来没有这样看过,所以我不确定这是不是不好的练习。
关于组成,最好采用哪种方法:
发布于 2013-02-05 01:54:59
我会在#include "treasure.hpp"类声明之前位于chest.hpp的顶部。不是所有的宝藏都在一个箱子里找到的。如果main()想要创建一个不在Chest中的宝藏,那么应该允许它这样做。
另一方面,我当然可以想象私人类会有用的时候。在这种情况下,我将直接在外部类中编码私有类,而不是将它包括在内。
发布于 2013-02-05 01:55:39
我将主要包括间接档案(宝藏包括在顶部的胸部)。有多个包含没有太大的意义。事实上,这是这些预编译器指令的主要用途之一;以防止由于文件多次被包含而导致的编译错误。
如果你用另一种方式去做,你就不能做一些主要的事情,比如创造新的财富,然后把它添加到你的胸膛里,或者把宝藏从你的胸膛里拿出来,然后独立地工作。只有当对象B完全由对象A使用时,该实现才有意义。
https://stackoverflow.com/questions/14698886
复制相似问题