"Class1"类"Class2"对象作为私有数据成员。如何通过"Class 2"函数引用"Class1"对象?
"Class1" class has "Class2" object as a private data member. How can i refer to "Class1" object through "Class 2" function?
Class1.h:
include "Class2.h"
class Class1
{
public:
Class1();
int getNum();
Class2 getClass2Object();//returns a Class2 object
protected:
private:
int num;
Class2 class2Object;//Class2 object as a data member of Class1
};
类1.cpp:
include "Class1.h"
Class1::Class1()
{
num = 1;
}
int Class1::getNum(){return num;}
Class2 Class1::getClass2Object(){return class2Object;}
类2.h:
accessNumThroughClass2()
函数,我需要在其中引用具有此Class2
对象作为数据成员的Class1
对象
class Class2
{
public:
Class2();
void accessNumThroughClass2();
protected:
private:
};
第2类.cpp:
在这里,我想引用将
Class2
对象作为数据成员的Class1
对象,以便 可以访问num
数据成员以打印其值。我该怎么做?
Class2::Class2()
{
//ctor
}
void Class2::accessNumThroughClass2(){
//What do I do here?
}
主.cpp:
#include <iostream>
using namespace std;
int main()
{
Class1 class1Object();
class1Object.getClass2Object().accessNumThroughClass2(); //Here make it print the value of num
return 0;
}
通过对前向声明进行一些研究,我实际上可以在定义之前在Class2.h
内部声明Class1
Class2
然后只使用指向Class1
对象的指针。这解决了我的问题。感谢您的帮助!
在 Class2 中创建一个包含 Class1 实例的成员(例如调用它父级(。在 Class2 构造函数中,接收 Class1 的实例以初始化父成员。
在 Class1 构造函数中,使用 Class2 的实例初始化 class2Object,并将其传递给 Class2 构造函数。
像这样:
类2.h
class Class2
{
public:
Class2();
void accessNumThroughClass2();
protected:
private:
Class1 parent;
};
类2.cpp
Class2::Class2(Class1 parent)
{
this.parent = parent;
}
void Class2::accessNumThroughClass2(){
return parent;
}
类1.cpp
include "Class1.h"
Class1::Class1()
{
num = 1;
class2Object = Class2(this);
}
int Class1::getNum(){return num;}
Class2 Class1::getClass2Object(){return class2Object;}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 构造对象的歧义
- "Class1"类"Class2"对象作为私有数据成员。如何通过"Class 2"函数引用"Class1"对象?