我觉得这应该很简单,但无论出于何种原因我都无法让它工作。
我正在尝试创建一个类的实例,可以将其传递给其他函数并直接由其他函数进行编辑。
例如:
main()
{
ClassFoo foo = new ClassFoo();
someFunction(foo);
}
void someFunction(ClassFoo& f)
{
f.add("bar");
}
问题是,在编译时,我遇到了这个错误。
no viable conversion from 'ClassFoo *' to 'ClassFoo'
ClassFoo foo = new ClassFoo();
^ ~~~~~~~~~~~~~~~
它还说其他候选构造函数不可行,但是在我的 ClassFoo
类中我确实有一个看起来像这样的构造函数:
ClassFoo::ClassFoo()
{}
那么我怎样才能完成编辑函数中的 ClassFoo
变量呢?
最佳答案
C++ 不是 Java(或者我想是 C#)。你不应该使用 new
关键字,除非你 know that you need to .它返回一个指向新创建的类的指针,因此会出现错误。可能,以下内容就足够了:
Class foo;
someFunction(foo);
对于默认构造的对象,如果您不使用 new
,则不应包含 ()
,因为这会做一些完全不同的事情(参见 the most vexing parse )
关于c++ - 没有从 'Class *' 到 'Class' C++ 的可行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136286/