好像我没有正确传递对象的指针,但为什么呢?

时间:2012-09-03 18:21:37

标签: c++ oop pointers

我正在使用对象指针,并能够使用他们的内存地址来传递和检索信息。

我的程序只传递了书的标题,没有其他信息,我不知道为什么。

如何使该程序正确存储和检索信息?我使用指针来传递值,我应该更改主函数以外的东西吗?

这是我的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 个答案:

答案 0 :(得分:3)

您正在将pAuther和pPublisher传递给Book构造函数,但没有对它们执行任何操作。

答案 1 :(得分:2)

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

这里你传递指针但没有使用它们。

答案 2 :(得分:1)

您的book()构造函数需要使用pAuthor和pPublisher中的数据调用setAuthorName和setPublisher函数。