2012-09-03 37 views
0

我正在使用對象的指針,並能夠使用他們的內存地址來傳遞和檢索信息。看來我沒有正確傳遞對象的指針,但爲什麼?

我的程序只通過書的標題,沒有其他信息,我不知道爲什麼。

如何使該程序正確存儲和檢索信息?我使用指針來傳遞值,我應該改變主函數以外的東西嗎?

這是我的main.cpp文件:

#include <iostream> 
#include <string> 
using namespace std; 

#include "Book.h" 

int main() 
{ 
    system("cls"); 

    Author *pAuthor = new Author("John", "Doe"); 
    Publisher *pPublisher = new Publisher("Wrox", "10475 Crosspoint Blvd.", "Indianapolis"); 
    Book *pBook = new Book("Memory Management", pAuthor, pPublisher, 39.99); 

    cout << pBook->getBookInfo() << endl; 

    system("pause"); 

    return 0; 
}; 

book.cpp文件:

#include <iostream> 
#include <sstream> 
using namespace std; 

#include "Book.h" 

Book::Book() 
{ 
} 

Book::Book(string title, Author *pAuthor, Publisher *pPublisher, double price) 
{ 
    this->title = title; 
    this->price = price; 
} 

Book::~Book() 
{ 
} 

回答

3

你傳入pAuther和pPublisher到Book的構造,但沒有做與他們任何事情。

1

您的book()構造函數需要使用來自pAuthor和pPublisher的數據調用setAuthorName和setPublisher函數。

2
Book::Book(string title, Author *pAuthor, Publisher *pPublisher, double price) 
{ 
    this->title = title; 
    this->price = price; 
} 

在這裏你傳遞的指針,但不使用它們。

+0

好的,這是真的。你有一些建議如何使用我的指針來填寫Publisher構造函數的所有重載? – HelpNeeder

+0

是的,您可以創建兩個屬性或字段來存儲傳遞給構造函數的指針,然後可以在您的類中需要的地方使用它們。 –

相關問題