我的编译器抱怨说我将一个对象声明为另一个类的私有成员(如下所示)给了我这个错误:
私人:
ForwardStrategy::ForwardStrategy* forwardStrategy; ForwardToStrategy::ForwardToStrategy* forwardToStrategy;
/home/ics45c/projects/p4/src/Person.hpp:45:19:错误:对'ForwardStrategy'的限定引用是一个构造函数 名称而不是可以声明构造函数的类型 ForwardStrategy :: ForwardStrategy * forwardStrategy; ^ /home/ics45c/projects/p4/src/Person.hpp:47:21:错误:对'ForwardToStrategy'的限定引用是一个构造函数 名称而不是可以声明构造函数的类型 ForwardToStrategy :: ForwardToStrategy * forwardToStrategy; ^
生成了2个错误。
所以看起来编译器认为我指的是构造函数而不是类型,但我不确定如何纠正这个问题......
抱歉格式糟糕......我不确定如何正确地做到这一点,但提前谢谢!
答案 0 :(得分:1)
只需将其更改为:
private:
ForwardStrategy* forwardStrategy;
ForwardToStrategy* forwardToStrategy;
因为它在你的问题中写的方式意味着你试图访问这个类的成员(这是构造函数)没有定义它的实例。