从c++中的另一个类调用一个类
Calling a Class from another class C++
我有一个类path
,它声明了一个名为
void addConnection(const book& book, const string& name)
,其中book
是一个结构体。
在我的main
函数中,我正在调用不位于任何类中的void generatePath(const string& inputName);
。当我试图调用path
类上的函数时,我得到了这个编译错误:
books.cpp:67: error: no matching function for call to ‘path::path()’
我的问题是,如何在类上调用函数?我一直以为是:
path p;
p.addConnection(b, "frank");
没有类路径的默认构造函数。您要么定义它,要么将适当的参数传递给构造函数path p("i don't know what kind of arguments it expects");
注意:不能调用类。在类的实例上调用方法
不是"调用"一个类,而是构造一个对象或某个类的实例。
您没有显示path
的代码,因此我们只能提供猜测。您已经为path
定义了一个非默认构造函数,如
class path {
public:
path (std::string const &str) : ... {...}
// note: no "path()"
};
在这种情况下,编译器不会为您合成该默认构造函数。另一种可能性是:
class path {
int &r;
};
。不是所有成员变量都可以默认构造或初始化的类(在这种情况下,必须初始化引用),在这种情况下,编译器不能合成默认构造函数
如果您没有定义任何构造函数,则在从类实例化时总是调用和实现默认构造函数。但是如果你定义了一个构造函数,默认的构造函数是"away",那么如果你需要的话,你必须自己编写它。
但是你应该添加更多的代码让我们知道路径是什么;-)
相关文章:
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 构造函数正在调用一个使用当前类类型的函数
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 在另一个线程中调用luaL_error会引发qWarning
- 如何在qt中从另一个类调用函数
- 检查哪个对象调用了另一个对象的对象方法
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 我有一个调用ID3D11DeviceContext::CopySubresourceRegion的循环.我怎么能强制等待
- 当另一个调用 lambda 使用默认捕获时,lambda 的闭包可能会被破坏吗?
- 在C++中嵌入Python:在Python脚本中导入模块在一个函数调用过程中有效,但在另一个调用过程中无效
- 如何在一个调用中释放多个互斥对象
- 我希望计时器只在上一个调用返回或完成执行时调用代码
- 定义一个调用其他函数的内联函数是否有意义
- 我如何测试一个调用是在谷歌测试延迟后使用嘲讽框架进行的
- 我想创建一个调用函数的源文件,而不必创建对象
- 是否有可能制作一个调用jdbc的Java JNI
- 如果您有一个调用其他内部函数的类接口函数
- 打开文件来自一个调用请求在黑莓10级联
- 创建一个调用另一个可执行文件的可执行文件
- 什么是崩溃我的应用程序的异常,给定一个调用堆栈与UnhandledExceptionFilter