[英]vector on c++ as a member into a class
我有一個問題,其中getUserOpinionVector()
、 getAppConstructorVector()
、 setUserOpinionVector()
、 setAppConstructorVector()
無法訪問UserOpinionVector
、 AppConstructorVector
屬性。
有什么建議嗎?
我在下面粘貼了我的代碼。
注意:為簡單起見,跳過了構造函數和一些屬性和方法。
#ifndef APPLICATION_H
#define APPLICATION_H
#include "ApplicationConstructor.h"
#include <vector>
using namespace std;
class Application{
private:
ApplicationConstructor &AppConstructor;
UserOpinion *UserView;
public:
Application(char *, string, string, ApplicationConstructor &, UserOpinion &, float); // Application's Constructor
Application(const Application &); // Copy Constructor
vector<ApplicationConstructor &> getAppConstructorVector(); // Get the Application Constructor Vector
vector<UserOpinion *> getUserOpinionVector(); // Get the User Opinion Vector
void setAppConstructorVector(vector<ApplicationConstructor &>); // Set the Application Constructor Vector
void setUserOpinionVector(vector<UserOpinion *>); // Set the User Opinion Vector
virtual ~Application(); // Destructor
protected:
vector<ApplicationConstructor &> AppConstructorVector; // Vector with Application Constructor Objects
vector<UserOpinion *> UserOpinionVector; // Vector pointers to with User Opinion Objects
};
#endif /* APPLICATION_H */
#include <iostream>
#include "Application.h"
//Constructor
Application::Application(char *applicationCode, string applicationName, float applicationVersion,
ApplicationConstructor &appConstructor , UserOpinion *userComment, float price ):AppConstructor(appConstructor){
if ((this->AppConstructor != NULL) && (this->UserView != NULL ))
{
this->addToAppConstructorVector(this->AppConstructor);
this->addToUserOpinionVector(this->UserView);
}
}
// Set the Application Constructor Vector
void setAppConstructorVector(vector<ApplicationConstructor &> appConstructorVector){
this->AppConstructorVector = appConstructorVector;
}
// Set the User Opinion Vector
void setUserOpinionVector(vector<UserOpinion *> userOpinionVector){
this->UserOpinionVector = userOpinionVector;
}
// Get the Application Constructor Vector
vector<ApplicationConstructor &> getAppConstructorVector(){
return this->AppConstructorVector;
}
// Get the User Opinion Vector
vector<UserOpinion *> getUserOpinionVector(){
return this->UserOpinionVector;
}
這些函數應定義為 class Application
的成員函數。
這意味着您應該在每個 function 名稱之前添加Application::
,如下所示:
// Set the Application Constructor Vector
void Application::setAppConstructorVector(vector<ApplicationConstructor &> appConstructorVector){
this->AppConstructorVector = appConstructorVector;
}
// Set the User Opinion Vector
void Application::setUserOpinionVector(vector<UserOpinion *> userOpinionVector){
this->UserOpinionVector = userOpinionVector;
}
// Get the Application Constructor Vector
vector<ApplicationConstructor &> Application::getAppConstructorVector(){
return this->AppConstructorVector;
}
// Get the User Opinion Vector
vector<UserOpinion *> Application::getUserOpinionVector(){
return this->UserOpinionVector;
}
除非您在 class 上聲明,否則您不能使用 function,這就是您無法訪問它的原因
// Set the User Opinion Vector
void Application::setUserOpinionVector(vector<UserOpinion *> userOpinionVector){
this->UserOpinionVector = userOpinionVector;
}
嘗試首先添加 class 的名稱,同時在 header 文件中將 function 添加為 public
class Application{
private:
ApplicationConstructor &AppConstructor;
UserOpinion *UserView;
public:
....
void setUserOpinionVector(vector<UserOpinion *> userOpinionVector)
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.