2016-11-03 3 views
-2
// this is the first point class header 
class Point : public CWaypoint{ 
public:    //temporarily 
    string m_description; 
public: 
    Point(); 
    virtual ~Point(); 
    void print(); 
    Point(string name, string description, double latitude, double longitude); 
    void getAllDataByReference(string& name,string& description, double& latitude,double& longitude); 
}; 



// This is the database class header 

class Database 
{ 
private:      
    Point m_POI[10];  // Point is the other class 
    int m_noPoi; 
public: 
    Database(); 
    virtual ~Database(); 
    void addPoI(string name,string description,double latitude,double longitude); 
    Point * getPointerToPoi(string name); 
} 
+3

Пожалуйста, в дальнейшем, сопроводите ваш код некоторым текстом. –

+0

Каковы конкретные проблемы, с которыми вы столкнулись? –

+0

«Как манипулировать частным атрибутом другого класса» вам, вероятно, нужны общедоступные методы, которые управляют частными атрибутами. –

ответ

0

Прежде всего, чтобы добавить к массиву, вы можете просто положиться на неявно объявленный оператор назначения копирования, который делает неполную копию всех полей:

void Database::addPoI(string name,string description,double latitude,double longitude) { 
    if (m_noPoi >= 10) // handle error 
    m_POI[m_noPoi++] = Point(name, description, latitude, longitude); 
} 

Поскольку данные являются частными, вы не можете получить доступ к нему (без учета «друга» корабль). Однако вы можете прочитать данные (через их копию) через point::getAllDataByReference().

Смежные вопросы