无法从其他类调用方法?
Can't call a method from other classes?
我有一个头文件是方法,第二个c++文件是实现这些方法的地方,第三个主文件是我想从第二个c++文件调用方法的地方。
我已经用注释说明了哪些行出现了错误。
Root.h file (just methods):
class Root
{
//File
public: void NewFile(void);
public: void OpenFile(void);
public: void SaveFile(void);
public: void SaveAsFile(void);
public: void Print(void);
public: void Exit(void);
//Edit
public: void Undo(void);
public: void Redo(void);
public: void Cut(void);
public: void Copy(void);
public: void Paste(void);
public: void SelectAll(void);
//Tools
public: void Options(void);
//Help
public: void About(void);
};
Root.cpp
#include "stdafx.h"
#include "Root.h"
using namespace System::Windows::Forms;
using namespace System::IO;
class Nroot : public Root
{
void OpenFile()
{
OpenFileDialog^ opf = gcnew OpenFileDialog();
opf->InitialDirectory = "C://";
opf->Filter = "Text Files|*.txt";
if(opf->ShowDialog() == DialogResult::OK) //here is first error C3063: operator '==': all operands must have the same enumeration type
{
StreamReader^ sr = gcnew StreamReader(opf->FileName);
MessageBox::Show(sr->ReadToEnd());
}
}
};
主文件 (just event)
private: System::Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Nroot nr;
nr.OpenFile; //here is second error C3867: 'WindowsFormsApplication2::Nroot::OpenFile': function call missing argument list; use '&WindowsFormsApplication2::Nroot::OpenFile' to create a pointer to member c:userssrdjandocumentsvisual studio 2012projectswindowsformsapplication2windowsformsapplication2Form1.h 325
}
-
看起来像
DialogResult::OK
枚举值在一个地方定义的不同,所以你必须使用值的完整路径:::System::Windows::Forms::DialogResult::OK
。至少MSDn示例是这样做的:if(opf->ShowDialog() == ::System::Windows::Forms::DialogResult::OK)
-
你忘记了括号:
nr.OpenFile(); ^^
-
要访问类外的
Nroot::OpenFile()
,您应该将其设置为public
。在c++
中,私有访问修饰符默认应用于成员:class Nroot : public Root { public: void OpenFile() //...
相关文章:
- 在c++中多次调用方法
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 接收字符串并使用它来调用方法C++
- 使用 gmock c++ 在真实对象上调用方法
- 不带预处理器的调用方法/文件的文件名/行号
- JNI从Android调用C++方法
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何使用接口指针调用方法,该指针是其具体类的一部分,而不是接口的一部分
- 从内部类中的方法从包含类调用方法
- 在销毁期间从另一个线程调用对象上调用方法是否未定义行为?
- 为什么派生类的实例从基类调用方法?
- 实例化对象并调用方法,使用单行语法在 C# 或 C++ 中返回值?
- C++当您取消引用指向类对象的指针,然后将其作为引用返回时,是否可以对此引用调用方法
- 通过模板函数对未知类型调用方法
- 从基于迭代器的for循环转换后,如何在map::find()中调用方法
- 创建一个C++DLL以从C#DLL调用方法
- 如何从qt中的类中调用方法
- 如何在不迭代的情况下对数组中的每个元素调用方法
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- C ++:如何在不创建对象的情况下在主函数中调用方法