在.h中调用.cpp方法
Invoque .cpp method inside .h
我正在尝试用Visual c++编程一个简单的Windows窗体应用程序
我的问题是,我已经建立了一个函数。cpp
Form1.cpp
bool function()
{
//code
}
问题是,我试图调用这个函数从。h文件做点击按钮
Form1.h
private:
System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
bool result = function();
}
我有编译错误。
我在之前的帖子中读到"尝试在.cpp文件中声明onClick
的体"。问题是……我不确定我到底应该把什么放在。cpp文件?
感谢您的宝贵时间;
您可以在使用该函数之前简单地放置一个原型。
bool function();
void whatever::button_click()
{
bool result = function();
}
如果你不想让原型在函数外可见,你甚至可以把它放入函数中:
void whatever::button_click()
{
bool function();
bool result = function();
}
当然,如果.cpp文件中的函数与原型不匹配,您将得到链接器错误。
我认为这里的问题是你不明白为什么在c++世界中一切都是这样的。假设你想创建一个类Foo它有一个函数Bar,很简单只要输入
class Foo
{
void Bar(){/*code*/}
};
现在你在一个文件中有Foo类,但你还需要一个必须在另一个文件中的Baz类。你不能移动Foo,所以c++有#include系统。这样,您可以将Foo放在一个文件中,Baz放在另一个文件中,并且仍然可以同时使用它们。一个理论上的例子可以是:
#include "Foo.h"
class Baz
{
Foo* foo;
};
对编译器的翻译是这样的(现在考虑Foo.h包含我之前写的内容):
class Foo
{
void Bar(){/*code*/}
};
class Baz
{
Foo* foo;
};
但这是非常低效的,原因有很多,首先,如果我们保持这样的一切,编译器将不得不编译相同的东西,每次你#包含一个文件在其他地方,所以c++有另一种机制,允许你告诉编译器,类Foo存在于其他地方,它将在未来可用,它看起来像这样,因此,当你在c++中创建一个类时,你使用。h文件来描述它应该是什么样子,并将实现保存在cpp文件中。在本例中,它看起来像这样:
//Foo.h
class Foo
{
void Bar();
};
//Foo.cpp
#include "Foo.h"
void Foo::Bar(){/*code*/}
//Baz
#include "Foo.h"
class Foo
{
void Bar(){/*code*/}
};
那么TLDR,你需要做的就是删除函数定义将其保留为
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e);
在cpp文件中有
System::Void Form1::button1_Click(System::Object^ sender, System::EventArgs^ e)
{
bool result = function();
}
相关文章:
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 将一系列数字映射到 CPP 中的值的简单方法
- 无法"this"指针传递到另一个类并在 CPP 中调用该类的任何方法
- 在目录中查找所有.cpp.h文件(include,src等)的传统方法
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- 在 *.cpp 文件中实现的 c++ 函数/方法永远不会内联扩展吗?
- 使用模板方法为标头提供空 cpp 时出现问题
- CPP 继承虚拟方法解析顺序
- 在.cpp文件中定义方法而不是在 C++ 的 .h 文件中定义方法时,如何提高代码的性能?
- c++ - 将大文件记录处理到 cpp 容器的最有效方法
- cpp中rand()方法的bankend程序是什么?
- CPP:如何使用需要指针的方法创建线程
- main.cpp从 .h 文件调用公共虚拟方法
- 我想从安卓工作室访问 .so lib 及其 cpp 文件的方法
- Qt cpp - 将QString写入文本文件的干净方法
- cpp 中是否存在一种数据结构,可以轻松地提供一种基于已存在的实例构建新结构的方法
- 在 cpp 正文中声明方法时未定义的符号
- 对于我的 ComplexNumber 中的某些方法,我得到了一个奇怪的未定义错误引用.cpp,不过我对模板很陌生
- 在 Android Framework 中使用 cpp 方法所花费的时间
- 在.h中调用.cpp方法