为什么在我的代码中将值从构造函数 var 传递到类变量失败?C++
Why does passing the value from a constructor var to the class variable fail in my code? c++
在我的类的构造函数中,我想读出程序的文件路径并将其传递给类变量,但它说"未声明的标识符"
这是我的.H 和 .cpp 文件:
#ifndef GEHEIMESTAGEBUCH_H
#define GEHEIMESTAGEBUCH_H
#include <QtWidgets/QMainWindow>
#include "ui_geheimestagebuch.h"
#include "login.h"
#include "hauptfenster.h"
class GeheimesTagebuch : public QMainWindow
{
Q_OBJECT
public:
GeheimesTagebuch(QWidget *parent = 0);
~GeheimesTagebuch();
wstring privatepath;
wstring getpath()
{
return privatepath;
}
private:
Ui::GeheimesTagebuchClass ui;
accountanlegen * anlegen;
SimpleCrypt * simple1;
Hauptfenster * Haupt;
public slots:
void update();
void accountanl();
};
#endif // GEHEIMESTAGEBUCH_H
和我的.cpp文件:
#include "geheimestagebuch.h"
#include <fstream>
#include <QDebug>
#include <QMessageBox>
#include <windows.h>
#include <iostream>
using namespace std;
GeheimesTagebuch::GeheimesTagebuch(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
QObject::connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(accountanl()));
anlegen=new accountanlegen();
Haupt=new Hauptfenster();
simple1=new SimpleCrypt(123321123321);
anlegen->setVisible(false);
Haupt->setVisible(false);
wchar_t buffer[MAX_PATH];
GetModuleFileName( NULL, buffer, MAX_PATH );
wstring path1(buffer);
wstring p1=L"\/";
wstring::size_type pos = wstring(path1).find_last_of( p1 );
path1=path1.substr(0,pos);
privatepath=path1;
}
GeheimesTagebuch::~GeheimesTagebuch()
{
}
void GeheimesTagebuch::update()
{
//unnecessery code. I can show if you want.
}
void GeheimesTagebuch::accountanl()
{
if(anlegen->isVisible()==false)
anlegen->show();
}
为什么最后一行不起作用?
GeheimesTagebuch::GeheimesTagebuch(QWidget *parent)
: QMainWindow(parent)
{
privatepath=path1;
}
这是我的主要问题。我的最终目标是使用 getter 方法将变量私有路径传递给另一个类。
这是根据要求,我的未编辑错误输出。
1>------ Erstellen gestartet: Projekt: GeheimesTagebuch, Konfiguration: Debug Win32 ------
1> geheimestagebuch.cpp
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(17): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'privatepath'
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(17): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(18): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getpath'
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(18): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(19): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(21): warning C4183: 'getpath': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(20): error C2065: 'privatepath': nichtdeklarierter Bezeichner
1>geheimestagebuch.cpp(28): error C2065: 'privatepath': nichtdeklarierter Bezeichner
1> moc_geheimestagebuch.cpp
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(17): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'privatepath'
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(17): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(18): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getpath'
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(18): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(19): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(21): warning C4183: 'getpath': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeneratedfilesdebug../../geheimestagebuch.h(20): error C2065: 'privatepath': nichtdeklarierter Bezeichner
1> main.cpp
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(17): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'privatepath'
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(17): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(18): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getpath'
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(18): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(19): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(21): warning C4183: 'getpath': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
1>c:userssteffendocumentsvisual studio 2012projectsgeheimestagebuchgeheimestagebuchgeheimestagebuch.h(20): error C2065: 'privatepath': nichtdeklarierter Bezeichner
1> Code wird generiert...
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========
日安
史蒂文
geheimestagebuch.h
文件中的所有wstring
都应该是std::wstring
。您可能还希望包含string
。至少这些错误是这样说的,编译器无法找到类型 wstring
.
相关文章:
- 查找后更改类变量
- 从类型std::函数传递变量失败,尽管调用方期望的类型完全相同
- 如何避免在仅标头库中C++类/变量重定义
- c++ 在非类函数中使用类变量
- 基于模板的类变量
- 分段 访问私有类变量时出错
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 模板类变量作为非模板类的成员
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- 如何在构造函数中访问类变量以分配它们,而无需在C++中使用此指针
- 类变量无法从类方法访问
- 指针作为类变量 Qt
- 为什么线程对类变量所做的更改没有影响?
- memcpy() 在一个类中被调用以复制到另一个类变量中后会引发异常
- C++:使用基类中的仅派生类变量
- 从静态成员函数访问私有非静态类变量 - C++
- 静态类变量的多重定义
- 使用 WindowSetup 类变量获取错误
- 为什么在我的代码中将值从构造函数 var 传递到类变量失败?C++