[英]C++: is it possible to late-initialize a class member function?
我有以下代码:
#include <iostream>
class First {
public:
Second* x;
void make_value(Second* sec_);
First() {
// Initialization
}
};
class Second {
public:
First* y;
Second() {
// Initialization
}
};
void First::make_value(Second* sec_) {
x = sec_;
}
void main() {
fir = new First();
sec = new Second();
fir->make_value(sec);
}
这两个类每个都有另一个类的成员变量,由于显而易见的原因它不起作用。
我的问题是是否有一种方法可以在类Second
初始化后后期初始化变量x
。 如果没有,有哪些替代方案?
对于编译器不需要定义类的任何用途,前向声明就足够了。 类型的指针和引用不需要定义。
class Second; // forward declare
class First {
public:
Second* x;
void make_value(Second* sec_);
First() {
// Initialization
}
};
class Second {
public:
First* y;
Second() {
// Initialization
}
};
void First::make_value(Second* sec_) {
x = sec_;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.