2017-06-02 42 views
-5

創建下面的類爲〔實施例如何調用從一個類的方法函數不止一個對象/場

class Date{ 

public: 
    setDate(Date &obj); 

private: 
    int day, month, year; 

}; 

然後在main()我想使用的功能setDate()但如何在這種情況下填寫date & obj

void main(){ 

    Date * today; 
    today->setDate(???); 
} 
+1

傳遞給另一個Date對象。還可以使用'today-> setDate()',並且該參數可能應該更改爲'Date const&'。 – cdhowie

+0

似乎沒有辦法設置日期。界面建議您只能將日期設置爲另一個日期對象,這意味着沒有指定任意日期。 –

+3

您已經創建了一種從另一個「日期」設置「日期」的方法,但無法設置第一個「日期」。您可能需要一個或多個構造函數來從其組件設置'Date',比如'Date(int day,int month,int year)'。 – twain249

回答

0

1)首先,不要使用裸體new,如果沒有必要,請不要使用新的al。因爲它可能導致內存泄漏問題。

2)不要使用setter只是使用構造函數。

3)使用在一個重載Date構造

4)初始化Date與initilizer列表const Date &。使用重載的構造Date使用const引用到其他Date

5)在主要的C++返回類型建立一個Date必須int

class Date{ 

    public: 
    Date(int dd, int mm, int yyyy); 
    Date(const Date &obj); 

    private: 
    int day, month, year; 

}; 

int main(){ 

    Date now = {02,06,2017}; 

    Date today(now); 
    return 0; 
} 

6)現在,如果你真的需要一個二傳手功能你可以這樣做:

class Date{ 

public: 
Date(int day, int month, int year); //A 
Date(const Date &obj); //B 

void setDate(const Date &obj); 

private: 
    int day, month, year; 

}; 

int main(){ 

    Date now = {02,06,2017}; 

    Date today(now); 

    today.setDate({02,06,2017}); //Setter example using initilizer list + contructor A 
    today.setDate(now); //Setter example 
    return 0; 
} 
相關問題