首页 > 解决方案 > c++ 上的向量作为类的成员

问题描述

我有一个问题,其中, ,getUserOpinionVector()无法getAppConstructorVector()访问,属性。setUserOpinionVector()setAppConstructorVector()UserOpinionVectorAppConstructorVector

有什么建议吗?

我在下面粘贴了我的代码。

注意:为简单起见,跳过了构造函数和一些属性和方法。

c++ 上的 .h 文件:

#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 */

.cpp 文件:

#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;
}        

标签: c++classvectormethodsproperties

解决方案


这些函数应该被定义为类的成员函数Application

这意味着您应该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;
}

推荐阅读