【发布时间】:2012-04-30 17:16:04
【问题描述】:
所以我在 c++ 中创建了一个具有 2 个引用类型成员的类:
class Edge{
private:
const Node& base;
const Node& target;
public:
Edge(const Node& new1, const Node& new2);
我想为 C'tor 中的 base 和 target 提供默认值。这意味着:
Edge()
不会出错,但会创建一个 Edge 对象。我该怎么做?
编辑: 我也在尝试:
Edge::Edge(const Node& newBase, const Node& newTarg)
{
m_base=newBase;
m_target=newTarg;
}
但它不会让我,它说没有运算符“=”与此运算符匹配。但我确实为节点创建了一个“=”运算符并检查了它是否有效.......
【问题讨论】:
-
你试过什么?你知道如何为函数编写默认参数吗?
-
@KerrekSB:添加默认参数并没有真正的帮助。
-
这似乎是个坏主意。你想用引用成员变量做什么?
-
@BenVoigt - 看起来是初始化列表导致了问题,而不是临时人员的生命周期:)
-
@awoodland:他还没有走到那一步;)
标签: c++ class reference constructor object-lifetime