[英]Object dependency in C++. What is the syntax for class composition?
Class are have written my classes in different files. 类已经在不同的文件中编写了我的类。 Such as: 如:
-main.cpp
-ClassA.cpp
-ClassB.cpp
-ClassC.cpp
main.cpp has the #include for all classes, but I also need to access Object instantiated from ClassA in main inside ClassB and ClassC. main.cpp对所有类都有#include,但我还需要在ClassB和ClassC的main内部访问从ClassA实例化的Object。
main.cpp main.cpp中
#include "ClassA.cpp"
#include "ClassB.cpp"
#include "ClassC.cpp"
ClassA objA;
ClassB objB(objA);
ClassB objC(objA);
. 。 . 。
classB.cpp classB.cpp
#include "ClassB.cpp" //How to avoid the double declaration and yet make the class recognizable?
class ClassB{
public:
ClassA objA;
ClassB(ClassA obj){
this->objA = obj; // Is it the right way in C++?
}
};
I know it is not right. 我知道这不对。 But why not? 但为什么不呢? In Java makes sense. 在Java中是有道理的。
Declare your classes in header files. 在头文件中声明您的类。 Eg "ClassB.h": 例如“ClassB.h”:
#include "ClassA.h" // if it's referenced by the subsequent class declaration, you likely need that class's header file as well.
class ClassB{
public:
ClassA objA;
ClassB(ClassA obj);
};
Implement your class in a .cpp file. 在.cpp文件中实现您的类。 Eg "ClassB.cpp" 例如“ClassB.cpp”
#include "ClassB.h"
ClassB::ClassB(ClassA obj)
{
objA = obj;
}
Repeat for your other classes. 重复其他课程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.