English 中文(简体)
构造器中过引指针( ) 的异常错误
原标题:strange error in passing pointers (*&) in constructor

我完全不是一个c++Gruru, 我试图在微小的尝试中复制这个错误。 事实上, 当我用 2 ° 3 类来做一个小程序时, 没有错误。 但在主要的 applaiton i m tring 写错误时, 即使我尝试过很多( 甚至是胡说八道的) 的解决方案, 错误仍然存在 。

问题是,我有一个主阶级 即刻化了一些资源(作为指针) 和一种战略模式, 一种战略模式, 能够证明不同的具体行为 吸收了建筑商的资源。

在主应用程序中, init( ) :

device = new Kinect();
controls = new Gui();

UserPositionBehaviour = new UserPositionBehaviour(device, controls);

行为构建器:

UserPositionBehaviour(Kinect * device, Gui * controls);

这就是错误:

src/App.cpp:30: error: no matching function for call to ‘UserPositionBehaviour::UserPositionBehaviour(Kinect*&, ofTrueTypeFont*&, ofxGui*&)’
src/UserPositionBehaviour.h:15: note: candidates are: UserPositionBehaviour::UserPositionBehaviour(Kinect*, ofxGui*, ofTrueTypeFont*)
src/UserPositionBehaviour.h:13: note:                 UserPositionBehaviour::UserPositionBehaviour(const UserPositionBehaviour&)

i m pass pass 指针, 而不是 \\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

有什么建议吗?

尝试复制错误, 简单的例子只建立在 couts 上, 但没有问题, 所以可能隐藏了某种错误 。

最佳回答

根据错误信息,你用三个参数,而不是两个, 重新给建筑师打电话, 并且你把最后两个错误了。

如果这是真实的错误信息, 那么您的代码可能看起来像 :

UserPositionBehaviour = new UserPositionBehaviour(device, font, controls);
//                                                        ^^^^  ^^^^^^^^

并且应当:

UserPositionBehaviour = new UserPositionBehaviour(device, controls, font);
//                                                        ^^^^^^^^  ^^^^

如果您的代码真的看起来和你所张贴的一样, 并给出了错误信息, 那么真的有些奇怪的事情正在发生; 在这种情况下, 请张贴一个完整的可调译的示例, 这样我们就可以进一步调查了 。

您可以忽略 Gcc s 错误消息中的额外 < code_ amp; s 的错误消息: 这是一个有点奇特的表达方式, 表示它正在查找以值或引用来取其参数的函数 。

问题回答

导致错误的代码通过三个参数( 不是你们认为的两个参数), 它有最后两个错误的顺序 。 您必须查看错误的源文件版本, 或者类似的东西 。

检查周围的 src/ UserPostionBehaviour.h src/App.cpp 的过期副本等愚蠢的东西,以便你可能看到这些傻东西,而不是看编译者正在实际汇编的版本。或者你正在使用预编译信头,而那里出了问题。

无法找到函数的错误信息通常会看起来类似 。 Foo {% amp; 是“ 引用指针到 Foo ” 的键, 它只是意味着您的参数表达式是一个 lvalue 指针到 Foo 。 调用 < em> 可能 匹配一个按值取指针的函数, 或者一个按值取指针的函数。 编译器也找不到这样的函数 。 编译器也找不到, 但它必须为错误信息选择某种东西, 而您的编译器会选择一种。 如果您的调用法包含参数表达式 < code> device+0 而不是 < code >, 那么它就不能通过非一致的引用( 因为 < code> device+0 是临时的), 错误信息将 T have < codeçamp;

代码应该编译 如果你真的有建构器

UserPositionBehaviour(Kinect * device, Gui * controls);

定义,根据汇编者,您不会:

src/UserPositionBehaviour.h:15: note: candidates are: UserPositionBehaviour::UserPositionBehaviour(Kinect*, ofxGui*, ofTrueTypeFont*) src/UserPositionBehaviour.h:13: note:
UserPositionBehaviour::UserPositionBehaviour(const UserPositionBehaviour&)

仅指您通过引用通过指针 - 即它可以在构建器内修改 。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签