簡體   English   中英

從該對象內部將創建的對象作為參數傳遞給C ++

[英]Pass created object as argument, from inside that object, C++

我正面臨以下問題。 我有以下課程, RoomReservation 對於Reservation類,有一個函數( void Reservation :: rsrvRoomAssignment(Room* r) ),用於將Reservation類的Room* rsrvRoom成員分配給Room對象。 我想從Room對象內部調用此類,但是我不知道如何實現將運行代碼的創建對象作為參數正確傳遞。

該代碼描述了上述內容:

保留時間

class Room;

class Reservation {
public:
    static int rsrvCode;
    string rsrvName;
    unsigned int rsrvDate;
    unsigned int rsrvNights;
    unsigned int rsrvPersons;
    Room* rsrvRoom;             // Room assigned to reservation.
    Reservation();
    ~Reservation();
    void rsrvRoomAssignment(Room*);

};

Reservation.cpp

#include <iostream>
#include "Reservation.h"

using namespace std;

/* 
    Constructor & Destructor 
*/

void Reservation :: rsrvRoomAssignment(Room* r){
    rsrvRoom=r;
}

室h

#include "Reservation.h"
class Room {
public:
    static unsigned int roomNumber;
    unsigned int roomCapacity;
    Reservation* roomAvailability[30];
    double roomPrice;
    Room();
    ~Room();
    bool roomReservationAdd(Reservation*);
};

Room.cpp

#include <iostream>
#include <string>
#include "Room.h"

using namespace std;

/*
    Constructor & destructor
*/

bool Room::roomReservationAdd(Reservation* r){
    /* some statement that returns flase */
    r->rsrvRoomAssignment(/* & of created object */); // This is the problem i described.
    return 1;
}

我對OOP還是很陌生,因此上述代碼片段可能還會出現一些邏輯錯誤,因此不要太苛刻:)。

感謝您的任何幫助!

在類方法中時, this指示調用它的對象的實例。 在您的情況下,當房間實例X調用X.roomReservationAdd(r) ,它指向房間實例X 因此,您可以簡單地調用r->rsrvRoomAssignment(this);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM